在Android中使用SD卡写入文件
我在Android中尝试了一个简单的文件写入程序。在Android中使用SD卡写入文件
try
{
//File f1=new File("/sdcard/Prag.txt");
File f1=new File("J:\\Prag.txt");
BufferedWriter out = new BufferedWriter(new FileWriter(f1,true));
out.write("Pragadheesh" + "\n");
out.close();
} catch (IOException ioe)
{ioe.printStackTrace();}
但是异常正在受到打击。我怎样才能解决这个问题?
[编辑]: 我试过File f1=new File(Environment.getExternalStorageDirectory() + "//Prag.txt");
和F1值= /mnt/sdcard/Prag.txt 但仍然是例外被击中。我在清单文件
[解决方案] 变更许可也按Krishnabhadra的答复,我必须确保你的SD卡没有安装在PC上
Android是基于Linux所以windows风格的路径一样"J:\\prag.txt"
将无法工作。在Linux路径是这样的:"/folder1/folder2/file.txt"
也不要使用硬编码路径,因为不同的手机可能有不同的SD卡路径。因此,您应该使用Environment.getExternalStorageDirectory()
以编程方式提供SD卡的路径。
所以使用:
File f1=new File(Environment.getExternalStorageDirectory() + "Prag.txt");
也通过添加必要的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
里面您的清单,外面某处标记application
。
I试过File f1 = new File(Environment.getExternalStorageDirectory()+“//Prag.txt”);并且f1值= /mnt/sdcard/Prag.txt但是仍然发生异常。我已经在清单文件中更改了权限 – SyncMaster
这个异常说的是什么?(在stacktrace后也是) – Caner
您是否在清单中设置了必需的权限?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这是什么路 “j:\ Prag.txt”; Android doesn't recognize any drive path like system
。
使用它的SD卡路径。
File f1=new File(Environment.getExternalStorageDirectory()+"/Prag.txt");
也在清单文件中提及权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我试过文件f1 = new File(Environment.getExternalStorageDirectory()+“//Prag.txt”);并且f1值= /mnt/sdcard/Prag.txt但是仍然发生异常。我已经在清单文件 – SyncMaster
中更改了许可权,这是例外情况吗?发布错误日志。 – user370305
根据Krishnabhadra的回复,我不得不确保你的SD卡没有安装在PC上 – SyncMaster
替换:
File f1=new File("J:\\Prag.txt");
BufferedWriter out = new BufferedWriter(new FileWriter(f1,true));
有:
BufferedWriter out = new BufferedWriter(new FileWriter(Environment.getExternalStorageDirectory(),"prag.txt"))
以上所有的答案都useful..But记得一个更thing..Make确保您的SD卡没有安装在PC上。一次只能有一个设备访问SDCard。即计算机或手机都可以访问SD卡,但不能同时访问。如果它安装在PC上,那么您的代码将无法工作。请参阅this线程
发布错误日志.. – user370305