我尝试将txt文件写入手机内存。
我使用此代码:
FileOutputStream out3 = null;
try {
out3 = new FileOutputStream(
Environment.getRootDirectory() + "/a_directory/b.txt");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但是我收到了一个错误。它说out3
是null
。为什么呢?
当我使用Environment.getExternalStorageDirectory()
时,它正在工作,但我想写入手机内存?
答案 0 :(得分:1)
尝试以下代码:
File myExternalFile = new File(getExternalFilesDir(filepath), "file.txt");
try {
FileOutputStream fos = new FileOutputStream(myExternalFile);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.append(text.getEditableText().toString());
osw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 1 :(得分:-1)
你无法在没有root的情况下写入内部存储器,Android OS就是用这种方式编写来保护操作系统的。相反,存在格式化的空间量,其作用类似于用于铃声和其他个性化数据的主存储器上的SD卡。所有机器人都被格式化为拥有或使用SD卡,即使galaxy nexus也有内部SD卡。将文件写入卡将触及更大的设备阵列。否则你将需要root访问权限,只有10%的Android设备是root用户。