我有一个简单的应用程序试图完成: //在txt文件中列出所有SD卡文件名。
我尝试了很多方法,至少在根存储目录中创建文件,但没有运气(不在使用“getFilesDir()”的应用程序私有文件中),其中一种方式显示在代码中样品。 是的,我使用了适当的权限。
任何帮助都会非常感激。
String path = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(path, "Something.txt");
file.mkdirs();
String[] array = file.list();
try {
FileOutputStream fos = new FileOutputStream(file, true);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write(String.valueOf(array));
osw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
如果您要写入外部存储,请将此权限添加到清单文件中:
<manifest ...>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
...
</manifest>
根据[文章。] [1]
答案 1 :(得分:0)
你需要调用osw.close();用于创建文件。
答案 2 :(得分:0)
在挖掘和玩耍之后,
事实证明我忘了叫“fos.close()”而不只是“osw.close()”
以及调用“file.createNewFile()”是强制性的,“mkdirs()”由于某种原因无效。
但感谢大家,感谢您的所有参与和努力。