Я ищу способ заменить строку в файле, не считывая весь файл в память.Обычно я бы использовал Reader and Writer, то есть что-то вроде следующего:
public static void replace(String oldstring, String newstring, File in, File out)
throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(in));
PrintWriter writer = new PrintWriter(new FileWriter(out));
String line = null;
while ((line = reader.readLine()) != null)
writer.println(line.replaceAll(oldstring,newstring));
// I'm aware of the potential for resource leaks here. Proper resource
// handling has been omitted in the interest of brevity
reader.close();
writer.close();
}
Однако я хочу сделать замену на месте и не думаю, что у меня могут быть открыты Reader and Writer наодин и тот же файл одновременно.Кроме того, я использую Java 1.4, поэтому у меня нет доступа к NIO, сканеру и т. Д.
Спасибо, Дон