Комрады пытался пройти этот валидатор, но не выходит
ошибка про статические переменный появилась после того как я переписал код с использованием try wih resources, хз как это связанно, но Валидатор часто на таком белку ловит.
программа рабоатет коректно, так же умеет определять есть ли в последней строке перенос и в зависимости от этого правильно распологать строку, но валидотору похер ему не нравится.
package com.javarush.task.task18.task1827;
/*
Прайсы
*/
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
if ( args.length > 0 && args[0].equals("-c")) {
File file = null;
int id = 0;
boolean IsNextLine = false;
StringBuilder productName = new StringBuilder();
float price = Float.parseFloat(args[args.length - 2]);
int quantity = Integer.parseInt(args[args.length - 1]);
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
file = new File(reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
assert file != null;
try (BufferedReader fileReader = new BufferedReader(new FileReader(file))) {
while (fileReader.ready()) {
String line = fileReader.readLine();
if (line.length() > 8) {
String idLine = line.substring(0, 8);
id = Integer.parseInt(idLine.trim());
} else
IsNextLine = true;
}
} catch (IOException e) {
e.printStackTrace();
}
for (int i = 1; i < args.length - 2; i++)
productName.append(args[i]).append(" ");
try (BufferedWriter fileWriter = new BufferedWriter(new FileWriter (file, true))) {
if (!IsNextLine) {
fileWriter.write(String.format("%-8.8s%-30.30s%-8.8s%-4.4s" + "%n", id + 1, productName, price, quantity));
} else
fileWriter.write(String.format("%n" + "%-8.8s%-30.30s%-8.8s%-4.4s", id + 1, productName, price, quantity));
} catch (IOException e) {
e.printStackTrace();
}
}
}
}