我在Android中开发,我找到了一个示例代码,它读取和写入数据到txt文件,如下面的代码:
以下函数用于将数据写入文本文件:
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);
}
}
以下用于从文本文件中读取数据的代码:
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) {
}
}
它可以在调用read
函数时查看日志中的数据,因此 TEST.txt 应该存在。
但是我没有在Android手机上找到 TEST.txt 文件管理器应用程序。
答案 0 :(得分:3)
您已在app目录(/data/data/your.package)中创建了文件,并且您无法通过文件管理器访问该文件。该文件存在,这就是为什么你可以通过方法读取它,但你不会看到它。在模拟器上测试您的代码 - 比您能够看到文件
如果你想更好地测试它并且你不想使用模拟器你可以在sdcard上保存文件,你可以通过文件管理器访问它,你将能够看到它
答案 1 :(得分:0)
您的文件将位于/data/data/<your package name>/files/
- 要么有root用户,要么有资源管理器才能看到这个,或者您在adb上使用run-as命令来浏览文件
有了正确的权限,您还可以将文件写入SD卡 - 然后访问它更容易 - 取决于您的需求
答案 2 :(得分:0)
你没有找到TEST.txt,因为它处于私人模式,你需要写MODE_APPEND
,你应该检查http://developer.android.com/reference/android/content/Context.html。
答案 3 :(得分:0)
activity.openFileOutput()
此方法打开与此Context的应用程序包关联的私有文件以进行编写。见doc