.txt ファイルの特定の場所に行を挿入したいと考えています。今私が知っている唯一の方法は、ファイル全体を配列として読み取り、指定された行を正しい場所に配置してから、すべてを書き戻すことです。Javaを使用してこれを達成する簡単な方法はありますか? 私の意図は、ファイルへのアクセスを可能な限り減らすことです。
5355 次
3 に答える
6
Javaを使用してこれを達成する簡単な方法はありますか?
Java 7 では、挿入ポイントが巨大なファイルの末尾にある場合を除き、単純に次のようにします。
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
lines.add(position, extraLine);
Files.write(path, lines, StandardCharsets.UTF_8);
于 2013-10-02T08:56:01.920 に答える
2
を使用して、読み取りと書き込みを同時に行うようにしてくださいBufferedReader
。
アイデアは、行を読み取り、すぐに他のファイルに書き込むことです。
BufferedReader rd = null;
BufferedWriter wt = null;
try {
rd = new BufferedReader(
new InputStreamReader(
new FileInputStream("/yourfile.txt"), "UTF-8")
);
wt = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(
"/newfile" + ".txt"), "UTF-8")
);
int count = 0;
for (String line; (line = reader.readLine()) != null;) {
count++
if (count == 6) {
// add your line
// wt.write(newline);
}
wt.write(line);
wt.newLine();
}
} finally {
close(wt);
close(rd);
}
于 2013-10-02T08:55:18.050 に答える
0
RandomAccessFile
この問題を解決しないでください。この投稿で議論されました。とにかくファイルを書き換える必要があります。
プログラムメモリを節約するために、バッファを使用して読み書きするだけで、それを変更し、すぐに新しいものに書き込むことができます。
于 2013-10-02T09:03:42.870 に答える