私はJavaで読み書きするためにRandomAccessFileを使用していました。しかし、ファイルに文字列を書き込むと、ファイルの現在の内容がオーバーライドされています。ここに私のコードはJava RandomAccessFile元のテキストを削除する
import java.io.RandomAccessFile;
public class hello{
public static void main(String[] args){
RandomAccessFile a;
try{
a = new RandomAccessFile("a.txt", "rw");
System.out.println(a.readLine());
a.writeUTF("another text");
}
catch(Exception e){
e.printStackTrace();
}
}
}
であり、ここで私のファイルの内容は
101 yes no yes no
102 no no yes no
103 yes no yes no
104 no no yes no
105 no yes no no
106 yes yes yes no
ですが、私はプログラムを実行すると、それは私が間違って何をした
101 yes no yes no
another text no
103 yes no yes no
104 no no yes no
105 no yes no no
106 yes yes yes no
なり?
RandomAcessFile#のwriteUTFは、カーソルの位置に内容を上書きし、あなたが既に ')(' a.readLineを使用して1行を読んで以来/書き込みを開始し、あなたのファイルポインタはに位置しています2行目の開始。また、書き込み/読み込みを終了した後、ファイルストリームを 'a.close()'で閉じることもベストプラクティスです。 –