Пытаюсь понять почему происходит следующее:
При переносе 36 строки на 7 позицию (сразу после объявления второго BufferedReader)
программа начинает вести себя некорректно, стирает весь файл и выбрасывает ИндексАутОфБаундЕксепшн, жалуясь на строку 34.
не могу понять почему так, может кто знает??
if (args[0].equals("-d")) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String path = br.readLine();
BufferedReader br1 = new BufferedReader(new FileReader(path));
ArrayList<String> listOfGoods = new ArrayList<>();
String line = "";
//заполняем массив товаров
while ((line = br1.readLine()) != null) {
listOfGoods.add(line);
}
//заполняем массив id интами
ArrayList<Integer> arrayOfId = new ArrayList<>();
for (String s: listOfGoods){
//System.out.println(s);
arrayOfId.add(Integer.parseInt(s.substring(0,8).trim()));
}
// находим нужный id
int targetIndex = 0;
int idi = 0;
for (Integer i: arrayOfId){
if (Integer.parseInt(args[1]) == i) { targetIndex = idi;}
idi ++;
}
if (targetIndex == 0) {return;}
//удаляем строку из массива
listOfGoods.remove(targetIndex);
FileWriter fileWriter = new FileWriter(path);
//записываем данные в файл
for (String s: listOfGoods){
fileWriter.write(s + "\n");}