'Where does the file get saved using "File file = new file(filename)" in Android

I am writing an android application. In the MainActivity.java, I created a method to write and then read contents from a file. These code runs successfully I and can store the data in a file named abc.txt, but I cannot find the written file in ES File Explorer.

public void writeInIt(View view) {


        try {
            String Message = editText.getText().toString();
            final File myFile = new File("abc.txt");
            if (!myFile.exists()) {myFile.createNewFile(); }

            FileOutputStream outputStream = new FileOutputStream(myFile);

            outputStream.write(Message.getBytes());
            outputStream.close();

            editText.setText("");
            Toast.makeText(getApplicationContext(), "Message Saved", Toast.LENGTH_LONG).show();

        } catch (IOException e) {
            e.printStackTrace();
        }


}

Where does it save the file? Why I can't I search it through the File Explorer? Ref to "http://developer.android.com/reference/java/io/File.html", if i include path, it will definitely store in that path location. However, if I not locate the dir, it can still store in device, but where does the file actually save???



Solution 1:[1]

"File file = new file(filename)"

this code does not save anything, it only cretes a class wrapper for file or director path. The closest method to actually create file would be to use file.createNewFile method.

There is guide for writing files from google: Saving Files

[edit]

following code generates exception "open failed: EROFS (Read-only file system)":

    File fl = new File("test12.txt");
    try {
      fl.createNewFile();
    } catch (IOException e) {
      e.printStackTrace();
    }

Solution 2:[2]

 In Android manifest:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

this is the code :

public void generateNoteOnSD(String sFileName, String sBody){
try
{
    File root = new File(Environment.getExternalStorageDirectory(),  "Notes");
    if (!root.exists()) {
        root.mkdirs();
    }
    File gpxfile = new File(root, sFileName);
    FileWriter writer = new FileWriter(gpxfile);
    writer.append(sBody);
    writer.flush();
    writer.close();
    Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show();
}
catch(IOException e)
{
     e.printStackTrace();
     importError = e.getMessage();
     iError();
}

}

Solution 3:[3]

enter image description here

You can find this file in device manager. Click your device (file symbol) /data/user/0/com.example.myapplication/files and than follow this path

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 MurugananthamS
Solution 3 deHaar