1

PrintWriter を使用して txt ファイルに書き込みます。しかし、ここで問題があります。何行か書いた後、一番上の行から書くことはできますか? たとえば、次のように書いています。

PrintWriter out = new PrintWriter("result.txt");
out.print("first line");
out.print("second line");

じゃあ一行目から書き直していい?したがって、次のように、最初の行の前に String top = "top line" を記述できます。

top line
first line
second line

問題は、「先頭行」と「2 行目」を記述した後にのみ String top の内容を取得できることです。ファイルの先頭に書き込むにはどうすればよいですか?

ありがとうございました!

4

2 に答える 2

2

これを実装する簡単な方法は、ファイル全体を文字列として読み取り、先頭にプレフィックス行を追加し、PrintWriter オブジェクトを使用してファイルの内容を文字列の内容で上書きすることです。それはまさにあなたが望んでいたものではありませんが、まったく同じ効果があります。:)

于 2013-02-25T23:16:40.097 に答える
0

RandomAccessFileクラスとそのseekメソッドを使用しますが、一番上に書き込むと行が挿入されずに上書きされます。それはあなたが望むことではありません。JB Nizetのコメントに同意します。最善の方法は、最初に計算してから書くことです。

最初の行のサイズがわかっている場合は、「XXXXXXXXXXXXXXX」と書き込んで埋め、他の行を書き込んだ後、先頭に戻って、同じ文字数の適切な行に置き換える必要があります。可能ですが、お勧めしません。

于 2013-02-25T22:06:04.990 に答える