Подскажите, пожалуйста, тест который сломает решение. вроде все верно выводит тестил на разных данных, пустом файле. пол дня убил.
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) throws IOException, InterruptedException {
if (args.length>0)
{
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
String fileName=reader.readLine();
if ((args[0].equals("-c"))&& (args.length>3)) {
StringBuilder stringBuilder = new StringBuilder();
for (int i = 1; i < args.length - 3; i++)
stringBuilder.append(args[i]+" ");
stringBuilder.append(args[args.length-3]);
if (stringBuilder.capacity()>30)
stringBuilder.delete(30,stringBuilder.capacity()-1);
// System.out.println(stringBuilder.toString());
create(stringBuilder.toString(),Double.parseDouble(args[args.length-2]),Integer.parseInt(args[args.length-1]),fileName);
}
}
}
public static void create (String productName, double price, int quantity, String fileName) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
int id=0;
while (reader.ready())
{
String item = reader.readLine();
Pattern idFinder = Pattern.compile("^(\\s*\\d+\\s*)(\\D+)(\\s*\\d+.\\d\\d\\s*)(\\s*\\d+\\s*)$");
Matcher matcher = idFinder.matcher(item);
while (matcher.find())
{ String tempId;
tempId=matcher.group(1).replaceAll(" ", "");
if (id<Integer.parseInt(tempId))
id=Integer.parseInt(tempId);
}
}
id++;
// System.out.println(id);
reader.close();
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName,true));
writer.write(String.format(System.getProperty("line.separator")+ "%-8d%-30s%-7.2f%-4d",id,productName,price,quantity));
writer.close();
}
}