我想在Android中将文本写入文件。我试着写sdcard和内部存储的公共部分。我总是得到FileNotFound异常。我尝试通过Environment.getExternalStorageDirectory().getAbsolutePath()
和Environment.getExternalStoragePublicDirectory(Enviroment.DIRECTORY_DCIM).getAbsolutePath()
获取路径(我认为它不会影响文件不是图片)并且都返回:“storage / emulated / 0”和“storage / emulated /” 0 / DCMI“分别。我也尝试过直接路径“/sdcard/MyFile/output.txt”和“mnt / sdcard / MyFile / output.txt”。我在这个主题中检查了大多数stackoverflow.com的回答,但我只得到了类似于我的代码。 (例如来自here)
我的代码示例(我尝试了更多变体):
try {
File dir = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/MyFile");
if (!dir.exists()) {
dir.mkdirs();
}
File file = new File(dir, "output.txt");
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream stream = new FileOutputStream(file);
stream.write(("some text").getBytes());
stream.close();
toast = Toast.makeText(context, "Saving file successful.", Toast.LENGTH_SHORT);
toast.show();
} catch (Exception e) {
toast = Toast.makeText(context, Environment.getExternalStorageDirectory().getAbsolutePath(), Toast.LENGTH_SHORT);
//toast = Toast.makeText(context, e.toString(), Toast.LENGTH_SHORT);
toast.show();
}
答案 0 :(得分:1)
你必须设置
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
AndroidManifest.xml文件中的权限。
如果您在Android 6.0或更高版本上运行应用程序,则必须在运行时请求此权限。
答案 1 :(得分:0)
我很抱歉你们所有人都浪费你的时间。问题在于权限设置。 Here是衣服。