Файл не изменяется - PullRequest
       34

Файл не изменяется

0 голосов
/ 23 марта 2019

Я пишу программу, которая меняет любые специальные символы на пробелы в файле, а затем перечитывает файл и получает частоту длины слова. При запуске, кажется, работает правильно, но когда я открываю файл, ничего не изменилось.

File tempFile = File.createTempFile("buffer", ".tmp");
fw = new FileWriter(tempFile);
reader = new BufferedReader(new FileReader(file));
System.out.println("File opened");

String line = reader.readLine();

// Replace non-alphanumeric symbols with spaces
System.out.println("Replacing non-alphanumeric symbols\n");
while(line != null) {
   line = line.replaceAll("a-zA-Z0-9_-", " ");
   fw.write(line);
   line = reader.readLine();                
   }
System.out.println("Lines replaced");
file = tempFile;
reader.close();
Файл

инициализируется над этим сегментом кода.

1 Ответ

2 голосов
/ 23 марта 2019

В вашем коде проблема.

line.replaceAll() - это функция, которая возвращает новый объект String с замененными символами. Ваш код заменяет данную строку, но вы не присваиваете результат какой-либо переменной.

Вероятно, это должно выглядеть примерно так:

File tempFile = File.createTempFile("buffer", ".tmp");
fw = new FileWriter(tempFile);
reader = new BufferedReader(new FileReader(file));
System.out.println("File opened");

String line = reader.readLine();

// Replace non-alphanumeric symbols with spaces
System.out.println("Replacing non-alphanumeric symbols\n");
while(line != null) {
   line = line.replaceAll("a-zA-Z0-9_-", " "); //assign the replaced value to the variable
   fw.write(line);
   line = reader.readLine();                
   }
System.out.println("Lines replaced");
file = tempFile;
reader.close();
...