读取和写入Samsung Galaxy S sd卡上的文本文件

时间:2011-10-10 10:57:47

标签: android sd-card galaxy

我认为这一定不是一项非常困难的任务,我已经用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卡时所写的内容。

有人知道解决方案吗?感谢

2 个答案:

答案 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");