Помогите найти ошибку, пожалуйста.
Валидатор ругается на один пункт: при запуске с "-u" должна обновиться...".
На моих тестовых обновляется.
package com.javarush.task.task18.task1828;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
Прайсы 2
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String fileName = bufferedReader.readLine();
if (args.length == 0) {
return;
}
FileInputStream in = new FileInputStream(fileName);
Map<String, String> fileLines = new HashMap<>();
if (in.available() > 0) {
int ch;
List<Character> chars = new ArrayList<>();
while ((ch = in.read()) != -1) {
chars.add((char) ch);
}
char[] charArray = new char[chars.size()];
for (int i = 0; i < chars.size(); i++) {
charArray[i] = chars.get(i);
}
String inputString = String.valueOf(charArray);
String[] lines = inputString.split("\n");
for (String line : lines) {
fileLines.put(line.substring(0, 8), line);
}
}
if (('-' == args[0].toCharArray()[0] && 'u' == args[0].toCharArray()[1]) &&
(args[1].length() > 0 && args[1].length() < 9) &&
(args[2].length() > 0 && args[2].length() < 31) &&
(args[3].length() > 0 && args[3].length() < 9) &&
(args[4].length() > 0 && args[4].length() < 5)) {
String idString = args[1];
String productName = args[2];
String priceString = args[3];
String quantityString = args[4];
idString = addWhitespaces(idString, 8 - idString.length());
productName = addWhitespaces(productName, 30 - productName.length());
priceString = addWhitespaces(priceString, 8 - priceString.length());
quantityString = addWhitespaces(quantityString, 4 - quantityString.length());
String lineString = idString + productName + priceString + quantityString;
fileLines.put(idString, lineString);
}
if (('-' == args[0].toCharArray()[0] && 'd' == args[0].toCharArray()[1]) &&
(args[1].length() > 0 && args[1].length() < 9)) {
fileLines.remove(addWhitespaces(args[1], 8 - args[1].length()));
}
FileOutputStream out = new FileOutputStream(fileName);
int iterationCount = 0;
for (Map.Entry<String, String> entry : fileLines.entrySet()) {
if (iterationCount != 0) {
out.write("\n".getBytes());
}
out.write(entry.getValue().getBytes());
iterationCount++;
}
in.close();
out.close();
}
private static String addWhitespaces(String string, int wSNumber) {
if (wSNumber == 0) {
return string;
}
StringBuilder stringBuilder = new StringBuilder(string);
for (int i = 0; i < wSNumber; i++) {
stringBuilder.append(" ");
}
return stringBuilder.toString();
}
}