0

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

但是当我尝试附加捕获时会引发以下错误..

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 错误中显示的路径是正确的......?

4

1 回答 1

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();
于 2012-11-11T09:31:00.210 回答