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

セパレーターなどを削除しようとしましたが、まだ機能しません。キャッチエラーに表示されているパスを見る限り、正しいですか...?

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 に答える