У меня тут как у всех. Всё работает. Файл проверяю, удаляет и заменяет. Но 3 и 4 пункт не выполнен. Что не так?
package com.javarush.task.task18.task1828;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Прайсы 2
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file = reader.readLine();
File inputFile = new File(file);
FileInputStream inputStream = new FileInputStream(inputFile);
BufferedReader readfile = new BufferedReader(new InputStreamReader(inputStream));
final String regex = "(\\d*)";
final Pattern pattern = Pattern.compile(regex);
if (args.length == 0){
return;
} else if (args[0].equals("-u")){
String line;
String id = args[1];
String productName = args[2];
String price = args[3];
String quantity = args[4];
while (id.length() < 8){
id = id+ " ";
}
while (productName.length() < 30){
productName = productName + " ";
}
if (productName.length() > 30){
productName = productName.substring(0,30);
}
while (price.length() < 8){
price = price + " ";
}
while (quantity.length() < 4){
quantity = quantity + " ";
}
String replaceString = id+productName+price+quantity;
List<String> stringList = new ArrayList<>();
while ((line = readfile.readLine()) != null) {
stringList.add(line);
}
reader.close();
inputStream.close();
inputFile.delete();
FileWriter fileWriter = new FileWriter(file);
for (int i = 0; i < stringList.size(); i++){
Matcher matcher = pattern.matcher(stringList.get(i));
if (matcher.find()){
if (Integer.parseInt(matcher.group()) == Integer.parseInt(args[1])){
stringList.set(i, replaceString);
fileWriter.write(stringList.get(i)+ "\n");
} else {
fileWriter.write( stringList.get(i)+ "\n");
}
}
}
fileWriter.flush();
fileWriter.close();
// for (String a: stringList
// ) {
// System.out.println(a);
// }
}else if (args[0].equals("-d")){
String line;
String id = args[1];
List<String> stringList = new ArrayList<>();
while ((line = readfile.readLine()) != null) {
Matcher matcher = pattern.matcher(line);
if (matcher.find()){
if (Integer.parseInt(matcher.group()) != Integer.parseInt(args[1])){
stringList.add(line);
}
}
}
inputStream.close();
File outputFile = new File("D:\\test.txt");
FileWriter writer = new FileWriter(outputFile);
for (String s: stringList
) {
writer.write(s+"\n");
}
writer.flush();
writer.close();
if (inputFile.delete()){
outputFile.renameTo(inputFile);
}
}
}
}