Все привет! При проверке выводит ошибки, в последних 4 пунктах. Проверял на файле, через debuger и все корректно. Не пойму где ошибка.
package com.javarush.task.task18.task1827;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
FileReader fileReader = new FileReader(fileName);
if(args[0].equals("-c") && args.length!=0){
int id = idSearch(fileReader);
String numberOfPosition = padRightWhiteSpace(String.valueOf(id), 8);
String productName = padRightWhiteSpace(args[1], 30);
String price = padRightWhiteSpace(args[2], 8);
String quantity = padRightWhiteSpace(args[3], 4);
String result = numberOfPosition+productName+price+quantity+"\n";
FileWriter fileWriter = new FileWriter(fileName, true);
fileWriter.write(result);
fileWriter.close();
}
}
private static String padRightWhiteSpace(String inputString, int length){
if(inputString.length()>length){
return inputString.substring(0,length);
}
else {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(inputString);
for (int i = stringBuilder.length(); i <length ; i++) {
stringBuilder.append(" ");
}
return stringBuilder.toString();
}
}
private static int idSearch(FileReader fileReader) throws IOException {
Scanner scanner = new Scanner(fileReader);
int maxId=0;
while (scanner.hasNextLine()){
String line = scanner.nextLine();
if(line.isEmpty()){
break;
}
if(line.length()>8)
line= line.substring(0,8);
if(line.contains(" ")){
line.replaceAll(" ", "");
}
int i = Integer.parseInt(line);
if(i>maxId)
maxId = i;
}
fileReader.close();
scanner.close();
return ++maxId;
}
}