5

さらに情報を書き込む前に、ファイルの内容を削除する必要があります。コンテンツを削除してもファイルは同じサイズのままで、削除後に書き込みを開始すると、新しいデータが書き込まれる前に空白の穴が削除のサイズに見えるなど、さまざまな方法を試しました.

これは私が試したことです...

BufferedWriter bw;
try {
    bw = new BufferedWriter(new FileWriter(path));
    bw.write("");
    bw.close();
}
catch (IOException e) {
    e.printStackTrace();
}

そして、私もこれを試しました...

File f = new File(file);
FileWriter fw;

try {
    fw = new FileWriter(f,false);
    fw.write("");
}
catch (IOException e) {
    e.printStackTrace();
} 

誰かがこの問題の解決策を教えてください。

4

3 に答える 3

8
FileWriter (path, false)

false は、ファイルに追加するのではなく、ファイルを切り捨てるようライターに指示します。

于 2012-06-18T11:14:51.277 に答える
1

flush()を呼び出す前に呼び出してみてくださいclose()

FileWriter writer = null;

try {
   writer = ... // initialize a writer
   writer.write("");
   writer.flush(); // flush the stream
} catch (IOException e) {
   // do something with exception
} finally {
   if (writer != null) {
      writer.close();
   }
}
于 2012-06-18T10:01:29.217 に答える
1

FileWriter fw.close(); を閉じていないことが原因である可能性があります。また、古いデータを「削除」する必要はありません。書き込みを開始するだけで、古いデータが上書きされます。そのため、どこでも閉じていることを確認してください。

これは私のために働く:

    File f=new File(file);
    FileWriter fw;
    try {
        fw = new FileWriter(f);
        fw.write("");
       fw.close();
    } catch (IOException e) {
        e.printStackTrace();
    } 
于 2012-06-18T15:26:31.883 に答える