Martin
Martin

Reputation: 2873

Why the txt file did not create in Android?

I am developing in Android , I found a sample code and it read and write the data to the txt file like the following code:

The following function is for writing data to text file:

private static final String MESH_DATA_FILE_NAME = "TEST.txt";

public void save(Activity activity) {
        try {
            int i;
            Context context = activity;
            FileOutputStream fos = activity.openFileOutput(MESH_DATA_FILE_NAME, context.MODE_PRIVATE);

            String str;
            for (i = 0; i < 10; i++) {
                str += "##" + i;
            }

            fos.write(str.getBytes());
            fos.write('\n');
            fos.close();
        } catch (Exception e) {
            Log.e(TAG, "saveMeshInfo exception: " + e);
        }
    }

The following code for reading data from text file:

public void read(Activity activity) {

        try {
            FileInputStream fin = activity.openFileInput(MESH_DATA_FILE_NAME);
            BufferedReader br = new BufferedReader(new InputStreamReader(fin));

            Log.i(TAG, "From file [" + MESH_DATA_FILE_NAME + "]...");

            // Read the information
            String   text = br.readLine();
            String[] strs = text.split("##", 4 + FloodMesh.IV_LEN + FloodMesh.KEY_LEN);

            fin.close();
        } catch (Exception e) {


        }
    }

It can see the data from the log when it call read function , so the TEST.txt should be exists.

But I didn't found the TEST.txt via file manager app on my android phone.

  1. Why I didn't found the TEST.txt file on my android phone ?
  2. If the TEST.txt not exists , why the read function can read the data ?
  3. How to find the TEST.txt file ?

Upvotes: 0

Views: 134

Answers (4)

Emil
Emil

Reputation: 2806

activity.openFileOutput() This method opens a private file associated with this Context's application package for writing. see doc

Upvotes: 0

anon
anon

Reputation:

You didn't found the TEST.txt because it's in private mode, you need to write MODE_APPEND,You should check http://developer.android.com/reference/android/content/Context.html.

Upvotes: 0

ligi
ligi

Reputation: 39539

your file will be in /data/data/<your package name>/files/ - either you have root and an explorer to see this or you use the run-as command on adb to explore the file With the right permission you can also write the file to sd-card - then accessing it is easier - depends on your needs

Upvotes: 0

Fixus
Fixus

Reputation: 4641

You've created file in you app directory (/data/data/your.package) and you don't have access there via file manager. The file exists that is why you can read it via method but you won't see it. Test your code on emulator - than you will be able to see the file

If you want to test it better and you don't want to use emulator you can save file on sdcard, you have access there via file manager and you will be able to see it

Upvotes: 3

Related Questions