0

我正在开发一个在文本文件中写入一些 JSON 数据的应用程序:

FileOutputStream fOut;
fOut = openFileOutput("myfile.txt", MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write(myJSONData);

我正在设备上测试此应用程序,当我将其插入计算机时,我无法看到该文件。你能告诉我它存储在哪个目录下,我需要将文件的操作模式设置为MODE_WORLD_READABLE才能看到它吗?

4

4 回答 4

3

它将文件保存在文件/data/app_package_name/files夹中。用户无法通过文件管理器访问此位置 - 只有您的应用可以通过代码访问它。

此外,如果您真的渴望访问私人文件,那么您需要考虑生根设备的选项。

于 2013-03-15T10:25:25.290 回答
2

通常,将其插入计算机就是将其安装到 SD 卡上。要保存到该文件,请获取 SD 卡根目录文件,Environment.getExternalStorageDirectory()然后使用该文件和所需的字符串文件名作为参数构造一个新文件。这会将它保存到您的 SD 卡中,这应该是您在计算机上安装它时看到的第一个文件夹。

顺便说一句,要将文本/JSON 直接写入文件,只需使用FileWriter

于 2013-03-15T10:25:21.507 回答
1

在移动设备为 root 之前,您无法直观地看到内部文件。如果您想查看它,请将其存储在 SD 卡中。

于 2013-03-15T10:21:49.460 回答
0

要将文件保存到 Android 上的内部存储(从 SDK 23 开始),请使用应用程序的文件存储位置getFilesDir()并将它们保存在那里。然后应将文件保存到/data/user/0/your.app.name/files. 请参阅:保存文件

File filename = new File(getFilesDir(), "filename.txt");

编写完成后,您可以使用 adb 从计算机中检索此文件:

adb pull "/data/user/0/your.app.name/files/filename.txt"
于 2016-09-04T06:14:14.177 回答