Проверял на реальных файлах - всё гуд, почему валя не пускает? Дайте советы где сосредоточить внимание.
package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader R = new BufferedReader(new InputStreamReader(System.in));
String file = R.readLine();
R.close();
if (args.length < 1){ }
else if (args[0].equals("-d")) {
BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line ="";
String line2 = "";
int countLines = 0;
while (input.readLine() != null) {
countLines++;
}
input.close();
input = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String[] outLines = new String[countLines-1];
int index = 0;
while(input.ready()) {
line2 = input.readLine();
line = line2.substring(0, 8).replace(" ", "");
if (!line.equals(args[1])) {
outLines[index] = line2;
index++;
}
}
input.close();
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, false), "windows-1251"));
for (String each : outLines) {
output.write(each);
output.newLine();
}
output.close();
} else if (args[0].equals("-u")) {
BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line ="";
String line2 = "";
int countLines = 0;
while (input.readLine() != null) {
countLines++;
}
input.close();
input = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String[] outLines = new String[countLines];
Formater f = new Formater();
int index = 0;
while(input.ready()) {
line2 = input.readLine();
line = line2.substring(0, 8).replace(" ", "");
if (!line.equals(args[1])) {
outLines[index] = line2;
index++;
} else {
outLines[index] = f.method(args[1], 8)+f.method(args[2],30)+f.method(args[3],8)+f.method(args[4],4);
index++;
}
}
input.close();
for (String each : outLines)
System.out.println(each);
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, false), "windows-1251"));
for (String each : outLines) {
output.write(each);
output.newLine();
}
output.close();
}
}
public static class Formater{
public String method(String x, int y){ //доводит до формата (число симв). если не хватает, до добавляет пробелов
String res = "";
char[] arr = new char[y];
for (int i = 0 ; i < arr.length; i++)
try {
arr[i] = x.toCharArray()[i];
}
catch (IndexOutOfBoundsException e) {
arr[i] = ' ';
}
for (int i = 0; i < arr.length; i++)
res += arr[i];
return res;
}
}
}