0

I have a button which stores data written in the EditText form above it to internal memory, but for some reason the code doesn't work. It doesn't even display the toast message.

final Button save = (Button) findViewById(R.id.buttonSave);
final String Day = dayName;

save.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                String FILEOUTPUT = Day;
                BufferedWriter bfw;

                try {
                    bfw = new BufferedWriter (new FileWriter(FILEOUTPUT));
                    Scanner scan = new Scanner(new File(editData.getText().toString()));

                    bfw.write(scan.nextLine());
                    bfw.close();
                    Toast.makeText(ModifyInfo.this, "Saved", Toast.LENGTH_SHORT);
                } catch (Exception e) {
                    Toast.makeText(ModifyInfo.this, "Save error", Toast.LENGTH_SHORT);  
                }
            }
        });

07-19 20:00:59.677: ERROR/File Save(341): Fail to save

07-19 20:00:59.677: ERROR/File Save(341): java.io.FileNotFoundException: /Monday (Read-only file system)

07-19 20:00:59.677: ERROR/File Save(341): at org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)

07-19 20:00:59.677: ERROR/File Save(341): at dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232)

07-19 20:00:59.677: ERROR/File Save(341): at java.io.FileOutputStream.(FileOutputStream.java:94)

07-19 20:00:59.677: ERROR/File Save(341): at java.io.FileOutputStream.(FileOutputStream.java:66)

07-19 20:00:59.677: ERROR/File Save(341): at java.io.FileWriter.(FileWriter.java:80)

07-19 20:00:59.677: ERROR/File Save(341): at com.geft.timetable.ModifyInfo$2.onClick(ModifyInfo.java:77)

07-19 20:00:59.677: ERROR/File Save(341): at android.view.View.performClick(View.java:2485)

07-19 20:00:59.677: ERROR/File Save(341): at android.view.View$PerformClick.run(View.java:9080)

07-19 20:00:59.677: ERROR/File Save(341): at android.os.Handler.handleCallback(Handler.java:587)

07-19 20:00:59.677: ERROR/File Save(341): at android.os.Handler.dispatchMessage(Handler.java:92)

07-19 20:00:59.677: ERROR/File Save(341): at android.os.Looper.loop(Looper.java:123)

07-19 20:00:59.677: ERROR/File Save(341): at android.app.ActivityThread.main(ActivityThread.java:3683)

07-19 20:00:59.677: ERROR/File Save(341): at java.lang.reflect.Method.invokeNative(Native Method)

07-19 20:00:59.677: ERROR/File Save(341): at java.lang.reflect.Method.invoke(Method.java:507)

07-19 20:00:59.677: ERROR/File Save(341): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)

07-19 20:00:59.677: ERROR/File Save(341): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)

07-19 20:00:59.677: ERROR/File Save(341): at dalvik.system.NativeStart.main(Native Method)

  • Any exceptions in your logcat? – Egor Jul 19 '11 at 12:41
  • 1
    It doesn't show the toast, because you don't call `toast.show();` (you can probably chain that). I assume you're getting an error. Why not log your error, instead of catching it and just throw a generic error? At least use `e->getMessage()` in your `Toast`, but better just write it to the log. – Nanne Jul 19 '11 at 12:44
  • Thanks! I got the Toast to show, but it keeps saying "Save error". –  Jul 19 '11 at 12:52

1 Answers1

0

what you doing with this line is wrong probably editData.getText().toString().If your editData is an EditText then your program will need a file name from it.I think you are not providing file name here.You are supposed to enter the string here that should be saved in the file.

Rasel
  • 15,499
  • 6
  • 40
  • 50
  • I'm confused. Could you please give a short example on what I should have done? –  Jul 19 '11 at 12:50
  • 1
    Please see this.http://stackoverflow.com/questions/3551821/android-write-to-sd-card-folder – Rasel Jul 19 '11 at 12:58
  • Scanner scan = new Scanner(new File(editData.getText().toString()));This line don't have any file.Please see the answers of my previous comment's question how to write a file – Rasel Jul 19 '11 at 16:01