写入文件内部存储 Android
Writing to File Internal Storage Android
鉴于此代码:
final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/";
String file = dir + "info.txt";
File newfile = new File(file);
//Environment.getExternalStorageDirectory().toString()= /storage/emulated/0
String msgData="p1000";
FileOutputStream outputStream;
try {
newfile.createNewFile();
outputStream = openFileOutput(file, Context.MODE_PRIVATE);
outputStream.write(msgData.getBytes());
outputStream.close();
} catch (Exception e) {
e.toString();
//e.printStackTrace();
}
当我打开文件 /storage/emulated/0/Documents/info.text 时,我发现它是空的,而它应该有字符串 "p1000";
这是为什么?
注意:我没有外部存储(外置sd卡)。
谢谢。
您的清单中是否有 WRITE_EXTERNAL_STORAGE 权限?
试试这个:FileOutputStream outputStream = new FileOutputStream(file);
如果您想使用内部存储,则不应传递指向外部存储(大致为 SD 卡)的路径。在你的 try-catch 块中改用这一行:
outputStream = openFileOutput("info.txt", Context.MODE_PRIVATE);
文件将保存在Context.getFilesDir()
返回的目录中。
鉴于此代码:
final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/";
String file = dir + "info.txt";
File newfile = new File(file);
//Environment.getExternalStorageDirectory().toString()= /storage/emulated/0
String msgData="p1000";
FileOutputStream outputStream;
try {
newfile.createNewFile();
outputStream = openFileOutput(file, Context.MODE_PRIVATE);
outputStream.write(msgData.getBytes());
outputStream.close();
} catch (Exception e) {
e.toString();
//e.printStackTrace();
}
当我打开文件 /storage/emulated/0/Documents/info.text 时,我发现它是空的,而它应该有字符串 "p1000";
这是为什么? 注意:我没有外部存储(外置sd卡)。
谢谢。
您的清单中是否有 WRITE_EXTERNAL_STORAGE 权限?
试试这个:FileOutputStream outputStream = new FileOutputStream(file);
如果您想使用内部存储,则不应传递指向外部存储(大致为 SD 卡)的路径。在你的 try-catch 块中改用这一行:
outputStream = openFileOutput("info.txt", Context.MODE_PRIVATE);
文件将保存在Context.getFilesDir()
返回的目录中。