Как и все, сначала накололся на том, что в файле может быть несколько строк.
После этого исправил код.
Сейчас работает как надо.
Прогнал тест на старом анекдоте
Жена посылает программиста в магазин
Дорогой купи пожалуйста палку колбасы
и если будут яйца то купи десяток
через полчаса программист возвращается
с десятью палками колбасы
Жена Что это Зачем ты купил столько колбасы
Программист
Ну так яйца—то были
посылает,программиста,магазин,
Дорогой,пожалуйста,колбасы,
десяток,
полчаса,программист,возвращается,
десятью,палками,колбасы,
столько,колбасы,
Программист,
яйца—то
Помогите, пожалуйста, разобраться что не нравится валидатору!?package com.javarush.task.task19.task1925;
/*
Длинные слова
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(args[0])); //here
BufferedWriter writer = new BufferedWriter(new FileWriter(args[1])); //here
boolean firstString = true;
while (reader.ready()){
//если мы сюда зашли, значит есть следующая строка
//а значит нужно покончить с предыдущей
//ставим в предыдущей запятую и переходим на новую строку
if (firstString)
firstString = false;
else
writer.write(",\n");
String[] strTemp = reader.readLine().split(" ");
boolean firstWord = true;
for (String s : strTemp){ //для каждой строки массива
if (s.length() > 6){ //если она длиннее 6 символов
if (firstWord){
writer.write(s); //для первой строки просто пишем её в файл
firstWord = false;
}
else { //а для второй и последующих строк
writer.write(","); //сначала пишем запятую
writer.write(s); //потом саму строку
}
}
}
}
reader.close();
writer.close();
}
}