ファイルに特定のインデックス位置で書き込む必要があります。 BufferedWriter
およびPrintWriter
はインデックスへの書き込みを許可しません。これを達成するにはどうすればいいですか?特定のインデックスでファイルに書き込む
基本的には、ファイルにEOFに空の行が含まれている場合、その位置に書き込む必要があります。そうでない場合は、新しい行を挿入して書き込みます。ファイルの内容を一時ファイルにコピーした後、元のファイルを削除した後、再び一時ファイルの名前を元のファイルの名前に変更することはできません。あなたはRandomAccessFile
を使用する必要が
おかげ
あなたがテキストファイル内のランダムな場所に記述する場合、そのおそらくでは、行の途中になる可能性が高いですマルチバイト文字の中間。どのようにそれが行の先頭になることを知っていますか?ところで、ファイルに挿入することはできませんあなただけのポイントからすべてを書き換えます。 –
@Peter:私たちはここでEOFを話しています。ランダムな位置ではありません。あなたがEOFに行くなら、あなたはマルチバイト文字の真中にいません。また、新しい行の先頭にあるかどうかを知るために、前のバイトがCRかLFかどうかを調べることができます。 –
@Vivienこれは、「特定のインデックス位置にあるファイルに書き込む必要がある」ということではありません。すべてのOPがファイルに追加したい場合は、「挿入」なしで行うことができます –