Ребят, привет. Кто из знатоков сможет помочь? Потестил немного, всё ок. Дебагом прошелся, тоже всё ок. По идеи решение соответствует условиям и файл остаётся неизменным, если параметры не переданы. Не понятно, что не так. Помогите пожалуйста.
package com.javarush.task.task18.task1827;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Прайсы
*/
public class Solution {
public static void main(String[] args) throws Exception {
// args = new String[]{"-c", "T-short", "32.01", "110"};
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
if (args[0].equals("-c") && args.length == 4) {
String address = reader.readLine();
BufferedWriter writer = new BufferedWriter(new FileWriter(address, true));
// System.out.printf("\n%-8d%-30s%-8.2f%-4d",
// findNumberNewProduct(address) + 1, args[1], Double.parseDouble(args[2]), Integer.parseInt(args[3]));
String line = String.format("\n%-8d%-30s%-8.2f%-4d",
findNumberNewProduct(address) + 1, args[1], Double.parseDouble(args[2]), Integer.parseInt(args[3]));
writer.write(line);
writer.close();
}
reader.close();
}
public static int findNumberNewProduct(String address) throws IOException { //looking max ID in all lines (in file)
FileReader fileReader = new FileReader(new File(address));
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line = "";
int number = 0;
while ((line = bufferedReader.readLine()) != null) {
int indexId;
if ((indexId = Integer.parseInt(line.substring(0, line.indexOf(' ')))) > number) {
number = indexId;
}
}
bufferedReader.close();
fileReader.close();
return number;
}
}