Я пытаюсь заменить ?
на -
в текстовом документе, но только ArrayList<String>
записывается в новый файл без всех строк старого. Как я могу это исправить?Прочтите файл, замените строку и создайте новый со всем содержимым
File file = new File("D:\\hl_sv\\L09MF.txt");
ArrayList<String> lns = new ArrayList<String>();
Scanner scanner;
try {
scanner = new Scanner(file);
int lineNum = 0;
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
lineNum++;
if (line.contains("?")) {
line = line.replace("?", "-");
lns.add(line);
// System.out.println("I found it on line " + lineNum);
}
}
lines.clear();
lines = lns;
System.out.println("Test: " + lines);
FileWriter writer;
try {
writer = new FileWriter("D:\\hl_sv\\L09MF2.txt");
for (String str : lines) {
writer.write(str);
}
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Вы можете добавить пример входных данных, и то, что она выглядит, как после выполнения кода? –
Не могли бы вы опубликовать компилируемую и исполняемую версию? BTW, вы должны использовать try-with-resources для всех 'close' для вас. Если нет, вы должны переместить 'close()' в 'finally' раздел после блоков' try-catch'. – Pshemo
Как насчет перемещения 'lns.add (line); 'после условия, в котором он сейчас находится? –