Не проходит предпоследнее условие задачи
package com.javarush.task.task19.task1910;
import java.io.*;
import java.util.*;
/*
Пунктуация
*/
//Считать с консоли 2 имени файла.
// Первый Файл содержит текст.
// Считать содержимое первого файла, удалить все знаки пунктуации, включая символы новой строки.//
// Результат вывести во второй файл.//
// Закрыть потоки.//
// Requirements:
// 1. Программа должна считывать имена файлов с консоли (используй BufferedReader).
// 2. BufferedReader для считывания данных с консоли должен быть закрыт.
// 3. Программа должна считывать содержимое первого файла (используй BufferedReader c конструктором FileReader).
// 4. Поток чтения из файла (BufferedReader) должен быть закрыт.
// 5. Программа должна записывать во второй файл содержимое первого файла, где удалены все знаки пунктуации, включая символы новой строки (Для записи в файл используй BufferedWriter с конструктором FileWriter).
// 6. Поток записи в файл (BufferedWriter) должен быть закрыт.
public class Solution {
private static final Set<Character> PUNCT = new HashSet<>(Arrays.asList(
'!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-',
'.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^',
'_', '`', '{', '|', '}', '~', '\n'
));
public static void main(String[] args) throws IOException {
BufferedReader nameReader = new BufferedReader(new InputStreamReader(System.in));
String file1 = nameReader.readLine();
String file2 = nameReader.readLine();
nameReader.close();
try(BufferedReader reader = new BufferedReader(new FileReader(file1));
BufferedWriter writer = new BufferedWriter(new FileWriter(file2));) {
FileReader fileReader;
int ch;
while ((reader.read()) != -1) {
ch = reader.read();
if (Character.isLetterOrDigit(ch) || ch == ' ') {
System.out.println(ch);
writer.write(ch);
}
}
}
}
}