Имеется проверка на пустые аргументы запуска программы.
Так же имеется проверка на соответствие нулевого аргумента запуска "-с".
Нужна еще проверка 1,2,3 аргументов на "не пустоту"?
package com.javarush.task.task18.task1827;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
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) {
return;
}
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String filePath = reader.readLine();
if(args[0].equals("-c")){
try (BufferedReader fileReader = new BufferedReader(new FileReader(filePath));
BufferedWriter fileWriter = new BufferedWriter(new FileWriter(filePath))){;
ArrayList<Integer> indexes = new ArrayList<>();
Pattern pattern = Pattern.compile("^\\d{1,8}");
while (fileReader.ready()) {
Matcher m = pattern.matcher(fileReader.readLine());
if (m.find()) {
indexes.add(Integer.parseInt(m.group()));
}
}
Collections.sort(indexes);
int newIndex = indexes.get(indexes.size()-1) + 1;
String id = String.format("%-8d", newIndex);
String productName = String.format("%-30.30s", args[1]);
String price = String.format(Locale.ROOT, "%-8.2f", Double.parseDouble(args[2]));
String quantity = String.format("%-4d", Integer.parseInt(args[3]));
fileWriter.write(id+productName+price+quantity);
}
}
}
}
