2010-04-12 104 views
11

对不起,暧昧的标题,但我做了以下写一个简单的字符串到一个文件:无法写入SD卡 - canWrite是返回false

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每次。我没有运行这个模拟器,我通过USB将我的android Eris插入到我的电脑中,并通过Eclipse运行我的手机上的应用程序。有没有办法让我的应用程序权限,所以这不会发生?

此外,此代码似乎创建文件default.txt但如果它已经存在,它会忽略创建,只是打开它写或我必须赶上类似FileAlreadyExists(如果存在这样的例外),如何然后打开它并写入?

感谢任何帮助家伙。

回答

17

有没有办法让我的应用程序 权限,所以这不会发生?

您需要WRITE_EXTERNAL_STORAGE权限。

您还需要在开发机器上没有安装SD卡 - 计算机或手机可以访问SD卡,但不能同时访问SD卡。

+0

我unmout手机从电脑,但仍然出现错误,我在AndroidManifest.xml文件中添加了** WRITE_EXTERNAL_STORAGE **权限,这要感谢提前。 – twlkyao 2013-12-26 15:07:57

0

附加WRITE_EXTERNAL_STORAGE权限清单文件

,如果有必要就以下

  1. 堵塞的机器人到您的计算机
  2. 拉下经理(顶部的酒吧时间,对不起不知名,现在不记得)
  3. 打“usb connected”
  4. 窗口弹出在你的电脑上显示你的内容S d卡
  5. 热播的“关闭USB存储设备”时,即可大功告成
  6. 断开USB连接线(如果你想),然后你的Droid可以读取SD卡再次