Abhishek.txtという名前のファイルがあり、次の行が含まれているとします。
私は、あなたの名前は何ですか。
今書きたい
Abhishek
私はAbhishekのように「私は」の後、..この特定の位置にコンテンツを直接書き込む方法。
ファイルにデータを挿入することはできません。特定の場所のデータをRandomAccessFile
で上書きできます。ただし、挿入には、その後のすべてのデータを変更する必要があります。あなたの場合は、代わりに次のようなものを試してください。
File file = new File("abhishek.txt");
Scanner scanner = new Scanner(file).useDelimiter("\n");
String line = scanner.next();
String newLine = line.substring(0, 5) + "Abhishek" + line.substring(5);
FileWriter writer = new FileWriter(file);
writer.write(newLine);
writer.close();
ファイルにデータを挿入することはできません...ファイルシステム(一般的に)は、単にそのような操作をサポートしていません。通常、1つのファイルを読み取り用に開き、別のファイルを書き込み用に開き、ファイルの最初の部分を1つのストリームから別のストリームにコピーし、余分な部分を書き込んでから、ファイルの2番目の部分をコピーします。
元のファイルを置き換えようとしている場合は、そのファイルを削除して、新しいファイルを所定の場所に移動する必要があります。
ファイル全体を一度にメモリに読み込む方が簡単な場合もあります。これは、実行しようとしていることと、ファイルの大きさによって異なります。
一般的に言えば、古いファイルを読み取り、メモリ内の内容を変更して、再度書き戻す必要があります。
ここでは、ファイルを一度に読み取るか、一度に小さな部分を読み取るか、既存のファイルを置き換えるかなど、多くのオプションがありますが、これは通常、使用するパターンです。
3つの選択肢があります。