写入SD卡时出错

时间:2012-11-11 09:05:10

标签: android

请帮忙...... 我在我的应用程序的第一个Activity中创建了一个文本文件,这一切都正常。 在我的下一个活动中,我想要附加到文本文件。

但是当我尝试追加捕获时会抛出以下错误..

mnt/scard/PatRecords/testfile.txt  contains a file seperator

文件中没有添加任何内容。

我的追加代码是..

try {
     File directory = new File 
      (Environment.getExternalStorageDirectory().getPath()+"/PatRecords");

     FileOutputStream fOut = openFileOutput(directory.getPath()+"/"+FileName$, MODE_APPEND);
        OutputStreamWriter OutWriter = new OutputStreamWriter(fOut); 


        OutWriter.write(TestNo$+"\n");
        OutWriter.write(Date$+"\n");

        OutWriter.close();
        fOut.close();

     }  catch (Exception e) {
        Toast.makeText(getBaseContext(), e.getMessage(),
                Toast.LENGTH_SHORT).show();
        Error=1;
    }//End of try/catch

我试过删除分离器等但仍然无效,据我所见 catch错误中显示的路径是正确的......?

1 个答案:

答案 0 :(得分:1)

openFileOutput()用于打开程序数据文件夹中的文件,该文件夹位于内部存储器中,您只能提供文件名,而不是路径,因此抱怨mnt/scard/PatRecords/testfile.txt contains a file separator

如果你想打开SD卡上的文件,你必须使用FileOutputStream()或类似的东西:

File of = new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream fos = new FileOutputStream(file);
fos.write(data);
fos.flush();
fos.close();
相关问题