В метод main первым параметром приходит имя файла1, вторым - файла2. Файл1 содержит строки со словами, разделенными пробелом.
Записать через пробел в Файл2 все слова, которые содержат цифры, например, а1, abc3d или 564.
Закрыть потоки.
Требования:
Программа НЕ должна считывать данные с консоли.
Программа должна считывать содержимое первого файла (используй FileReader c конструктором String).
Поток чтения из файла (FileReader) должен быть закрыт.
Программа должна записывать во второй файл все слова из первого файла которые содержат цифры (используй FileWriter).
Поток записи в файл (FileWriter) должен быть закрыт.
Исправил код, дубликаты не съедает.
Но результат по прежнему: "Убедись, что программа записывает во второй файл все слова из первого файла которые содержат цифры."
для перевода строки в массив car для последующей записи
и
char[] writeChars =newchar[characters.size()];
для записи потоком FileWriter.
Без первого и последнего массива char можно обойтись, если FileReader-ом читать, а FileWriterom записывать посимвольно. Не слишком эффективно по времени (прочитал в интернете), да и железо жалко.
А средний массив char[] ch - технический, для перевода строки в массив, который потом целиком одним махом запишется - тоже можно было бы и без него обойтись:
char= string.charAt(i);
fileWriter.write(i);
Совсем без массивов char.
Знаю, что комментарий относительно количества массивов char не просто так, а в качестве совета.
Действительно лучше без них?
FileWriter может писать не только посимвольно, но и целой строкой.
"Под капотом" будет та же запись через буфер символов, но не нужно будет делать столько явных преобразований строка-массив, код будет выглядеть чище и понятнее.
Избавиться от char[] - не цель. Просто во многих случаях они совершенно ни к чему. Внутри String все равно есть тот же самый массив char, но со строками часто удобнее работать.