Валидатор не пускает по последним трем пунктам, сам тестировал, работает корректно и правильно.
Разбор вариантов входных данных -d или -u сделан в два максимально похожих куска, знаю что так делать не стоит)
Подскажите пожалуйста, в чем может быть дело?
package com.javarush.task.task18.task1828;
/*
Прайсы
*/
import java.io.*;
import java.sql.Struct;
public class Solution {
public static String makeStr(String args[]) {
String Str = "";
Str += args[1];
while (Str.length() - 8 < 0) {
Str += " ";
}
Str += args[2];
while (Str.length() - 38 < 0) {
Str += " ";
}
Str += args[3];
while (Str.length() - 46 < 0) {
Str += " ";
}
Str += args[4];
while (Str.length() - 50 < 0) {
Str += " ";
}
return Str;
}
public static void main(String[] args) throws Exception {
if (args.length > 0) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String filename = reader.readLine();
BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("forJava.txt"));
OutputStream outputStreamWriter = new FileOutputStream(filename, true);
if ("-u".equals(args[0])) {
String Str = "";
boolean f = false;
String UpdateId = args[1];
while (bufferedReader.ready()) {
if (f == true) {
bufferedWriter.write("\n");
}
String s = bufferedReader.readLine();
if (s.substring(0, 8).split(" ")[0].equals(UpdateId)) {
Str = makeStr(args);
bufferedWriter.write(Str);
f = true;
} else {
bufferedWriter.write(s);
f=true;
}
}
bufferedReader.close();
bufferedWriter.close();
InputStream IS = new FileInputStream("forJava.txt");
byte[] bb=new byte[IS.available()];
IS.read(bb);
IS.close();
outputStreamWriter.close();
outputStreamWriter = new FileOutputStream(filename, false);
outputStreamWriter.write(bb);
outputStreamWriter.close();
} else if ("-d".equals(args[0])) {
String Str = "";
boolean f = false;
String UpdateId = args[1];
while (bufferedReader.ready()) {
if (f == true) {
bufferedWriter.write("\n");
}
String s = bufferedReader.readLine();
if (s.substring(0, 8).split(" ")[0].equals(UpdateId)) {
f = false;
} else {
bufferedWriter.write(s);
f = true;
}
}
bufferedReader.close();
bufferedWriter.close();
InputStream IS = new FileInputStream("forJava.txt");
byte[] bb=new byte[IS.available()];
IS.read(bb);
IS.close();
outputStreamWriter.close();
outputStreamWriter = new FileOutputStream(filename, false);
outputStreamWriter.write(bb);
outputStreamWriter.close();
}
}
}
}