Не вижу, где не закрыла поток, подскажите пожалуйста
package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Scanner;
///Users/mac/Documents/JRTasks/Прайсы2.txt
///Users/mac/Documents/JRTasks/Прайсы2.pages
///Users/mac/Documents/JRTasks/FilesPath/resultFile.txt
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
Path path = Paths.get(fileName);
reader.close();
if (args.length != 0) {
ArrayList<String> goods = new ArrayList<>();
Scanner scanner = new Scanner(path);
String line = "line was,t initialized";
while (scanner.hasNext()) {
line = scanner.nextLine();
goods.add(line);
}
scanner.close();
for (int i = 0; i < goods.size(); i++) {
System.out.println(goods.get(i));
}
//System.out.println(args[0] + " " + args[1] + " " + args[2] + " " + args[3] + " " + args[4] + " " + args[5]);
switch (args[0]) {
case "-u":
int spaceCount = 0;
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < goods.size(); i++) { //searching for good with ID needed
if (Integer.parseInt(goods.get(i).substring(0, 8).trim()) == Integer.parseInt(args[1])) {
stringBuilder.append(args[1]); //id added
//Начинаем создавать строку с обновленным товаром
//Помещаем в строку с обновленным товаром айди этого товара и дополняем пробелами до нужной длинны
for (int j = stringBuilder.length(); j < 8; j++) {
stringBuilder.append(" ");
spaceCount++;
}
spaceCount = 0;
stringBuilder.append(args[2]); //productName added
for (int j = stringBuilder.length(); j < 38; j++) {
stringBuilder.append(" ");
spaceCount++;
}
spaceCount = 0;
stringBuilder.append(args[3]); //price added
for (int j = stringBuilder.length(); j < 46; j++) {
stringBuilder.append(" ");
spaceCount++;
}
spaceCount = 0;
stringBuilder.append(args[4]); //quantity added
for (int j = stringBuilder.length(); j < 50; j++) {
stringBuilder.append(" ");
spaceCount++;
}
goods.set(i, stringBuilder.toString());
stringBuilder = null;
}
}
BufferedWriter writer1 = new BufferedWriter(new FileWriter(fileName));
for (int j = 0; j < goods.size(); j++) { //writing the renewed data to the file
writer1.write(goods.get(j) + '\n');
}
writer1.close();
break;
case "-d":
BufferedWriter writer2 = new BufferedWriter(new FileWriter(fileName));
for (int i = 0; i < goods.size(); i++) {
if (Integer.parseInt(goods.get(i).substring(0, 8).trim()) == Integer.parseInt(args[1]))
goods.remove(i);
}
for (int i = 0; i < goods.size(); i++) {
writer2.write(goods.get(i) + '\n');
}
writer2.close();
break;
}
}
}
}