/mypath/sampletext.txt に txt ファイルがあるとします。元のテキスト ファイルの内容を保持しながら、Java で次のようにファイルの先頭に新しい行を追加するにはどうすればよいですか?:
String startStr ="--Start of File--";
中間の 2 番目のファイルを作成せずにこれを行う方法を探しており、可能であれば既存のファイルのみを変更します。
/mypath/sampletext.txt に txt ファイルがあるとします。元のテキスト ファイルの内容を保持しながら、Java で次のようにファイルの先頭に新しい行を追加するにはどうすればよいですか?:
String startStr ="--Start of File--";
中間の 2 番目のファイルを作成せずにこれを行う方法を探しており、可能であれば既存のファイルのみを変更します。
最初にファイルの内容を読み取り、新しい行をそのようなものcontents = newLine + contents
に追加してから、新しい内容を同じファイルに書き込みます (追加しないでください)。
さて、3つの方法があなたを助けるかもしれません
1.
//true: FileWriter にテキストを追加する write = new FileWriter("file_path",true); ライター.書き込み(コンテンツ);
// randomFile と "rw" を開きます
randomFile = new RandomAccessFile("file_path", "rw");
// ファイルの長さ
long fileLength = randomFile.length();
//インデックスを終了するポイント randomFile.seek(fileLength);
//write randomFile.writeBytes(content);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));
out.write(コンテンツ);
新しい回答が更新されました...
これで私はさらにいくつかの FileIO クラスを使用しましたが、それらのクラスは非推奨の API である可能性がありますが、Java FileIO クラスを知っていれば簡単に修正できます。
ここでは、ファイルの末尾に追加するのではなく、ファイルの先頭に新しい行を追加します..
何か問題があれば、もう一度コメントしてください....
これを試してください、私はそれがあなたを助けると思います..
try
{
//Append new line in existing file.
FileInputStream fr = new FileInputStream("onlineSoultion.txt");
DataInputStream dr = new DataInputStream(fr);
String startStr = "--Start of File--\n";
//String startStr;
while (dr.available() > 0) {
startStr += dr.readLine();
//System.out.println(startStr);
}
dr.close();
fr.close();
FileOutputStream writer = new FileOutputStream("onlineSoultion.txt");
writer.write((new String()).getBytes());
writer.close();
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("onlineSoultion.txt", true)));
out.println(startStr);
out.close();
}