Не проходит валидацию, хотя код выполняется.
и как сделать что бы с новой строки всегда записывал ?
package com.javarush.task.task18.task1827;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
if (args.length > 0) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
BufferedReader br = new BufferedReader(new FileReader(fileName));
FileWriter fw = new FileWriter(fileName, true);
int id = 0;
if (args[0].equals("-c")) {
while (br.ready()) {
String s = br.readLine();
Pattern p = Pattern.compile("[0-9 ]{8}\\.*");
Matcher matcher = p.matcher(s);
while (matcher.find()) {
String tmp = matcher.group().trim();
if (tmp.equals("")) continue;
int i = Integer.parseInt(tmp);
if (i > id) id = i;
}
}
int newID = ++id;
StringBuilder idForWr = sb(String.valueOf(newID), 8);
StringBuilder productName = sb(args[1], 30);
StringBuilder price = sb(args[2], 8);
StringBuilder quantity = sb(args[3], 4);
//Подытожим
idForWr.append(productName);
idForWr.append(price);
idForWr.append(quantity);
String resultString = idForWr.toString();
fw.write(resultString);
}
fw.close();
br.close();
reader.close();
}
}
private static StringBuilder sb(String param, int c) {
StringBuilder tmp = new StringBuilder(param);
if (param.length() < c) {
for (int i = param.length(); i < c; i++) {
tmp.append(" ");
}
} else if (param.length() > c) {
param.substring(0, c);
}
return tmp;
}
}