我有一个非常具体的问题 - 我正在尝试写入 Asus Nexus 7 上的外部存储,但它正在写入设备上的模拟目录。
这是我使用的代码:
public static void writeExternalMedia(Context context) {
if(isExternalStorageWritable()) {
String content = "hello world";
File filedir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/test");
filedir.mkdir();
File file;
FileOutputStream outputStream;
try {
file = new File(filedir, "test.txt");
if (!file.exists()) {
file.createNewFile();
}
outputStream = new FileOutputStream(file);
outputStream.write(content.getBytes());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
每当我重新启动设备时,目录会在插入时出现在设备下方,这是我希望在执行上述功能时发生的情况。
我已尝试寻找解决方案,但找不到我的问题的答案。
最佳答案
我做了两个方法。一个用于创建文件,一个用于附加到文件。我认为问题在于您没有调用 createNewFile。
private File CreateFile(String fileName)
{
File file = new File(this.getFilesDir(), fileName);
try
{
if(!file.exists())
{
file.createNewFile();
}
}
catch (IOException e)
{
e.printStackTrace();
}
return file;
}
private void appendToFile(String file, String content)
{
try
{
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(this.openFileOutput(file, this.MODE_APPEND));
outputStreamWriter.append(content + "\n");
outputStreamWriter.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
关于Android:Asus Nexus 7 在重启之前不会提交模拟内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37996241/