Решал "из головы", а не как в "верном решении". На вид вроде все должно работать, но проверку не проходит. Посмотрите, где косяк? Заранее спасибо.
package com.javarush.task.task18.task1827;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
if(args.length==0) return;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String fname = bufferedReader.readLine();
int maxid = Integer.MIN_VALUE;
try(FileReader reader = new FileReader(fname)) {
BufferedReader linereader = new BufferedReader(reader);
String line = linereader.readLine();
while (line != null) {
int max = Integer.parseInt(line.substring(0, 8));
if (max > maxid) maxid = max;
line = linereader.readLine();
}
}
if(args[0].equals("-c")) {
String id = formatString(String.valueOf(++maxid), 8);
StringBuilder pName = new StringBuilder();
for (int i = 1; i < args.length-2; i++) {
pName.append(args[i]).append(" ");
}
String productName;
if(pName.length()<=30) {
productName= formatString(pName.toString(), 30);
}
else
{
productName = pName.substring(0,30);
}
String price = formatString(args[args.length-2],8 );
String quantity = formatString(args[args.length-1],4 );
try(FileWriter writer = new FileWriter(fname, true)){
writer.write("\n");
writer.write(id+productName+price+quantity);
}
}
}
protected static String formatString(String str, int position) {
StringBuffer buffer = new StringBuffer(position);
int to = position - str.length();
buffer.append(str);
for (int i = 0; i < to; i++) {
buffer.append(" ");
}
return buffer.toString();
}
}