abhishek.txtという名前のファイルがあり、次の行が含まれているとします。
私は、あなたの名前は何ですか。
今書きたい
アビシェク
私はAbhishekのように「私は」の後、..この特定の位置にコンテンツを直接書く方法。
abhishek.txtという名前のファイルがあり、次の行が含まれているとします。
私は、あなたの名前は何ですか。
今書きたい
アビシェク
私はAbhishekのように「私は」の後、..この特定の位置にコンテンツを直接書く方法。
ファイルにデータを挿入することはできません...ファイルシステム(一般に)は、そのような操作をサポートしていません。通常、1 つのファイルを読み取り用に、別のファイルを書き込み用に開き、ファイルの最初の部分を 1 つのストリームから別のストリームにコピーし、余分な部分を書き込み、次にファイルの 2 番目の部分をコピーします。
元のファイルを置き換えようとしている場合は、それを削除して新しいファイルを所定の場所に移動する必要があります。
場合によっては、ファイル全体を一度にメモリに読み込む方が簡単な場合があります。これは、何をしようとしているのか、およびファイルの大きさによって異なります。
ファイルにデータを挿入することはできません。で特定の場所のデータを上書きできます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();
一般的に言えば、古いファイルを読み取り、メモリ内の内容を変更して、再度書き戻す必要があります。
ここでは、ファイルを一度に読み取るか、一度に小さな部分を読み取るか、既存のファイルを置き換えるかなど、多くのオプションがありますが、これは通常、使用するパターンです。
次の 3 つの選択肢があります。