Всем привет. Всё работает отлично. В чём проблема?
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
//String fileName = "D:\\projects\\java\\JavaRushTasks\\2.JavaCore\\src\\com\\javarush\\task\\task18\\task1827\\123.txt";
String fileName = bufferedReader.readLine();
List<Integer> ids = new ArrayList<>();
if(args.length > 0) {
String command = args[0];
String addProductName = args[1];
String addPrice = args[2];
String addQuantity = args[3];
if (command.equals("-c")) {
if (addProductName.length() > 30) {
addProductName = addProductName.substring(0, 30);
} else {
int count = 30 - addProductName.length();
for (int i = 0; i < count; i++) {
addProductName += " ";
}
}
if (addPrice.length() > 8) {
addPrice = addPrice.substring(0, 8);
} else {
int count = 8 - addPrice.length();
for (int i = 0; i < count; i++) {
addPrice += " ";
}
}
if (addQuantity.getBytes().length > 4) {
addQuantity = addQuantity.substring(0, 4);
}
/*
else {
int count = 4 - addQuantity.length();
for (int i = 0; i < count; i++) {
addQuantity += " ";
}
*/
bufferedReader = new BufferedReader(new FileReader(new File(fileName)));
while (true) {
String buf = bufferedReader.readLine();
if (buf == null) break;
String id = buf.substring(0, 8);
if (id.contains(" ")) ids.add(Integer.parseInt(id.substring(0, id.indexOf(" "))));
else ids.add(Integer.parseInt((String) id.subSequence(0, 8)));
}
bufferedReader.close();
Collections.sort(ids);
int lastId = ids.get(ids.size() - 1) + 1;
BufferedWriter bufferWriter = new BufferedWriter(new FileWriter(fileName, true));
bufferWriter.write( "\n" + Integer.toString(lastId) + addProductName + addPrice + addQuantity);
bufferWriter.close();
}
}
}
}
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
//String fileName = "D:\\projects\\java\\JavaRushTasks\\2.JavaCore\\src\\com\\javarush\\task\\task18\\task1827\\123.txt";
String fileName = bufferedReader.readLine();
bufferedReader.close();
List<Integer> ids = new ArrayList<>();
if(args.length > 0) {
String command = args[0];
String addProductName = args[1];
String addPrice = args[2];
String addQuantity = args[3];
if (command.equals("-c")) {
if (addProductName.getBytes().length > 30) {
addProductName = addProductName.substring(0, 30);
} else {
int count = 30 - addProductName.getBytes().length;
for (int i = 0; i < count; i++) {
addProductName += " ";
}
}
if (addPrice.getBytes().length > 8) {
addPrice = addPrice.substring(0, 8);
} else {
int count = 8 - addPrice.getBytes().length;
for (int i = 0; i < count; i++) {
addPrice += " ";
}
}
if (addQuantity.getBytes().length > 4) {
addQuantity = addQuantity.substring(0, 4);
}
/*
else {
int count = 4 - addQuantity.length();
for (int i = 0; i < count; i++) {
addQuantity += " ";
}
*/
bufferedReader = new BufferedReader(new FileReader(new File(fileName)));
while (true) {
String buf = bufferedReader.readLine();
if (buf == null) break;
String id = buf.substring(0, 8);
if (id.contains(" ")) ids.add(Integer.parseInt(id.substring(0, id.indexOf(" "))));
else ids.add(Integer.parseInt((String) id.subSequence(0, 8)));
}
bufferedReader.close();
Collections.sort(ids);
int lastId = ids.get(ids.size() - 1) + 1;
BufferedWriter bufferWriter = new BufferedWriter(new FileWriter(fileName, true));
bufferWriter.write( Integer.toString(lastId) + addProductName + addPrice + addQuantity + "\n");
bufferWriter.close();
}
}
}
}
bufferedReader.close();
то при валидации появляется ещё одна ошибка: - Созданные для файлов потоки должны быть закрыты.