Добрый день.
Все работает, в файле все меняется, но почему-то не принимает.
Подскажите, пожалуйста
package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static void main(String[] args) throws IOException {
try {
if (args[0].equals("-u")) {
String fileName = readFileName();
ArrayList<String> list = new ArrayList<>(readFile(fileName));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).substring(0, args[1].length()).equals(args[1])) {
String id = list.get(i).substring(0, 8);
String product = updateProduct(args[2]);
String price = updatePrice(args[3]);
String quantity = updateQuantity(args[4]);
sb.append(id).append(product).append(price).append(quantity);
list.set(i, sb.toString());
}
}
writeFile(list, fileName);
} else if (args[0].equals("-d")) {
String fileName = readFileName();
ArrayList<String> list = new ArrayList<>(readFile(fileName));
for (int i = 0; i < list.size(); i++) {
if (list.get(i).substring(0, args[1].length()).equals(args[1])) {
list.remove(i);
}
}
writeFile(list, fileName);
}
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
}
}
private static String readFileName() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
return fileName;
}
private static List<String> readFile(String fileName) throws IOException {
InputStreamReader inputStream = new InputStreamReader(new FileInputStream(fileName));
BufferedReader reader = new BufferedReader(inputStream);
String line;
ArrayList<String> list = new ArrayList<>();
while ((line = reader.readLine()) != null) {
list.add(line);
}
reader.close();
return list;
}
private static void writeFile (List<String> list, String fileName) throws IOException {
OutputStreamWriter outputStream = new OutputStreamWriter(new FileOutputStream(fileName));
BufferedWriter writer = new BufferedWriter(outputStream);
for (int i = 0; i < list.size(); i++) {
if (i == list.size() - 1) {
writer.write(list.get(i));
break;
}
writer.write(list.get(i));
writer.newLine();
}
writer.close();
}
private static String updateProduct(String argument) {
StringBuilder sb = new StringBuilder();
if (argument.length() < 30) {
sb.append(argument);
for (int i = argument.length(); i < 30; i++) {
sb.append(" ");
}
} else sb.append(argument);
return sb.toString();
}
private static String updatePrice(String argument) {
StringBuilder sb = new StringBuilder();
if (argument.length() < 8) {
sb.append(argument);
for (int i = argument.length(); i < 8; i++) {
sb.append(" ");
}
} else
sb.append(argument);
return sb.toString();
}
private static String updateQuantity(String argument) {
StringBuilder sb = new StringBuilder();
if (argument.length() < 4) {
sb.append(argument);
for (int i = argument.length(); i < 4; i++) {
sb.append(" ");
}
} else sb.append(argument);
return sb.toString();
}
}