Стремился к простому короткому решению без нагромождения экземпяров классов, но не выходит.
package com.javarush.task.task19.task1925;
/*
Длинные слова
*/
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
/*
1. Программа НЕ должна считывать данные с консоли.
2. Программа должна считывать содержимое первого файла (используй FileReader c конструктором String).
3. Поток чтения из файла (FileReader) должен быть закрыт.
4. Программа должна записывать через запятую во второй файл все слова из первого файла длина которых строго больше 6(используй FileWriter).
5. Поток записи в файл (FileWriter) должен быть закрыт.
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader fr = new BufferedReader(new FileReader(args[0]));
BufferedWriter fw = new BufferedWriter(new FileWriter(args[1]));
ArrayList<String> list = new ArrayList<>();
while (fr.ready()) {
String linesText = fr.readLine();
String[] words = linesText.split("[\\s, \\n]");
list.addAll(Arrays.asList(words));
}
fr.close();
for(int i = 0; i < list.size(); i++) {
if (list.get(i).length() > 6) {
if (i != list.size() - 2) {
fw.write(list.get(i) + ",");
} else {
fw.write(list.get(i));
}
}
}
fw.close();
}
}