我认为这一定不是一项非常困难的任务,我已经用HTC Desire进行了管理,但出于某种原因,我无法在我的Android应用程序中读取三星Galaxy S SD卡。
我用:
public String writeFile1(String text) {
File sdDir = Environment.getExternalStorageDirectory();
File myFile = new File(sdDir+"/TextFiles/patientDetails.txt");
try{
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter =
new OutputStreamWriter(fOut);
myOutWriter.write(text);
myOutWriter.close();
fOut.close();
return "success";
}catch (IOException e){
e.printStackTrace();
return "fail";
}
}
这很好用!文件内容得到保存,我很高兴。但是,当我反向使用...时
//
File f = new File(Environment.getExternalStorageDirectory()+fileName);
FileInputStream fileIS = new FileInputStream(f);
BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));
String readString = new String();
//just reading each line and pass it on the debugger
String s = "";
while((readString = buf.readLine())!= null){
s+=readString;
}
return s;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
我收到一个未找到的文件异常!我刚刚写信给它,可以看到我在装载SD卡时所写的内容。
有人知道解决方案吗?感谢
答案 0 :(得分:0)
您正在使用错误的构造函数
File f = new File(Environment.getExternalStorageDirectory(), "filename");
而不是
File f = new File(Environment.getExternalStorageDirectory()+fileName);
现在您的代码可以正常运行。
答案 1 :(得分:0)
初始化文件对象时会发生什么?
Environment.getExternalStorageDirectory()+fileName
在这种情况下首先你会像这样获得路径
/sdcard
并与文件名连接,然后以这种方式得到结果
filename = "test.txt";
path > /sdcardtext.txt
现在检查是否找不到此文件,因此请注意检查文件对象的完整路径。
接下来你可以这样使用
File f = new File(Environment.getExternalStorageDirectory(), "filename");