对于模棱两可的标题感到抱歉,但我正在执行以下操作,将简单的字符串写入文件:
try {
File root = Environment.getExternalStorageDirectory();
if (root.canWrite()){
System.out.println("Can write.");
File def_file = new File(root, "default.txt");
FileWriter fw = new FileWriter(def_file);
BufferedWriter out = new BufferedWriter(fw);
String defbuf = "default";
out.write(defbuf);
out.flush();
out.close();
}
else
System.out.println("Can't write.");
}catch (IOException e) {
e.printStackTrace();
}
但root.canWrite()
似乎每次都会返回false。我没有在模拟器上运行它,我将我的android Eris通过USB插入我的计算机并通过Eclipse从我的手机上运行应用程序。有没有办法给我的应用程序权限,所以这不会发生?
此外,这段代码似乎是创建了文件default.txt
,但是如果它已经存在,它会忽略创建并只是打开它来编写,或者我必须抓住类似FileAlreadyExists
的内容(如果存在这样的例外)然后只是打开并写入?
感谢任何帮助。
答案 0 :(得分:17)
有没有办法给我的应用程序 许可,所以这不会发生?
您需要WRITE_EXTERNAL_STORAGE
权限。
您还需要在开发计算机上不安装SD卡 - 计算机或手机可以访问SD卡,但不能同时访问这两个SD卡。
答案 1 :(得分:0)
为清单文件添加WRITE_EXTERNAL_STORAGE权限
如果有必要,请执行以下操作