при втором запуске говорит следующее : Exception in thread "main" java.lang.StringIndexOutOfBoundsException: begin 0, end 8, length 0
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3756)
at java.base/java.lang.String.substring(String.java:1902)
at Solution.maxIndex(Solution.java:35)
at Solution.main(Solution.java:18)
почему то не считывает индекс из строки... почему?(((
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
/*
Прайсы
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.*;
import java.lang.String;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file = reader.readLine();
reader.close();
FileWriter writer = new FileWriter(file, true);
// String result = "";
if(args.length > 0 && args[0].equals("-c")) {
String id = String.valueOf(maxIndex(file));
String productName = args[1];
String price = args[2];
String quantity = args[3];
// result = ;
writer.write(String.format("%-8s%-30.30s%-8.8s%-4.4s", id, productName, price, quantity));
writer.write("\n");
writer.flush();
}
writer.close();
}
private static int maxIndex(String str) throws IOException {
int max = 0;
BufferedReader reader = new BufferedReader(new FileReader(str));
while (reader.ready()){
String index = reader.readLine().substring(0,8);
int tempIndex = Integer.parseInt(index.trim());
if(tempIndex > max){max = tempIndex;}
}
reader.close();
System.out.println(max);
return max+1;
}
}