С моей точки зрения - задача выполнена. Есть две обертки - одна для FileWriter другая для FileReader Данные перед чтением и записью привожу в формат, который указан в задании, пишу посимвольно. Непонятка только с аргументами комманд лайна. Или productName должен иметь возможность содержать пробел и тогда его нужно вбивать в аргументах вызова в " " или же не понятно вообще как аргументы командной строки парсить. Слить весь args в строку и брать подстроки по 8, 30 и так далее символов не выйдет, потому как если имя будет, например содержать 15 символов, после него сразу в такой строке будет price и следующие аргументы. Если брать по максимально возможным длинам из объединенного args - быстро вылетишь за границы строки. В общем - решил что подразумевается что productName может быть многострочным. А что подразумевали авторы курса - не известно. Вот аргс
Скрин файла после записи не ложу - вон он там с классами лежит, и так видно что записало все по формату. Собственно, что может раздражать валидатор? Ну и в общем если кто-то какие-то ошибки увидит - буду благодарен