У меня уже глаз, видимо, замылился, но я не могу понять, что именно не так. Помогите, пожалуйста!
package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) {
try {
String fileName = "";
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
fileName = reader.readLine();
reader.close();
// Читаем содержимое файла в коллекцию
ArrayList<String> products = new ArrayList<>();
BufferedReader fileReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "cp1251"));
while (fileReader.ready()) {
products.add(fileReader.readLine());
}
fileReader.close();
// Изменение записи
if (args.length > 4 && args[0].equals("-u")) {
String productId = args[1];
String productName = "";
String productPrice = args[args.length - 2];
String productQuantity = args[args.length - 1];
String updatedProduct = "";
/*
* Приводим длину параметров к заданному стандарту
*/
if (productPrice.length() > 8) {
productPrice = productPrice.substring(0, 8);
} else {
for (int i = productPrice.length(); i < 8; i++) {
productPrice += " ";
}
}
if (productQuantity.length() > 4) {
productQuantity = productQuantity.substring(0, 4);
} else {
for (int i = productQuantity.length(); i < 4; i++) {
productQuantity += " ";
}
}
for (int i = 2; i < args.length - 2; i++) {
if (i > 2)
productName += " ";
productName += args[i];
if (productName.length() > 31) {
productName = productName.substring(0, 30);
break;
}
}
for (int i = productName.length(); i < 30; i++)
productName += " ";
for (int i = productId.length(); i < 8; i++)
productId += " ";
updatedProduct = productId + productName + productPrice + productQuantity;
/*
* Записываем результат с изменением записи по id
*/
BufferedWriter fileWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "cp1251"));
int i = 0;
for (String product : products) {
String currentProductId = product.substring(0, 8).trim();
if (i++ > 0) fileWriter.newLine();
if (currentProductId.equals(productId.trim())) {
fileWriter.write(updatedProduct);
} else
fileWriter.write(product);
}
fileWriter.close();
}
// Удаление записи
if (args.length == 2 && args[0].equals("-d")) {
String productId = args[1];
BufferedWriter fileWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "cp1251"));
int i = 0;
for (String product : products) {
String currentProductId = product.substring(0, 8).trim();
if (!currentProductId.equals(productId)) {
if (i++ > 0) fileWriter.newLine();
fileWriter.write(product);
}
}
fileWriter.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}