Не пропускает по 3м последним пунктам. Не пойму почему?
package com.javarush.task.task18.task1828;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Прайсы 2
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));//считываем строку с консоли
String fileName = reader.readLine();
//BufferedReader fileReader = new BufferedReader(new FileReader(fileName));
BufferedReader fileReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"CP1251"));//поток чтения из файла
BufferedWriter writerTmp = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:\\1\\1.tmp"),"CP1251"));//поток записи во временный файл
String str; //строка для чтения и записи в файл
while (fileReader.ready()) { //пока не конец файла для чтения
str = fileReader.readLine(); //считываем чтроку
if(!str.equals("")){//если строка не пустая
if(str.substring(0,8).replace(" ","").equals(args[1])){ //если id совпадает
switch (args[0]){
case "-u": { // заменяем строку
str = String.format("%-8s%-30s%-8s%-4s",
args[1], args[2], args[3], args[4]);
writerTmp.write(str+"\n");
break;
}
case "-d": { // пропускаем запись строки (удаляем)
break;
}
default: { // если нет параметров то перезаписываем строку
writerTmp.write(str+"\n");
}
}
}else {
writerTmp.write(str+"\n");// если строка по id не найдена то перезаписываем считанную строку
}
}
}
reader.close(); //закрываем поток чтения с консоли
fileReader.close(); //закрываем поток чтения из файла
writerTmp.close();//закрываем поток записи во временный файл
//----------------перезаписываем файл tmp в исходный файл и удаляем файл tmp--------------
fileReader = new BufferedReader(new InputStreamReader(new FileInputStream("c:\\1\\1.tmp"),"CP1251"));
writerTmp = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName),"CP1251"));
while (fileReader.ready()){
writerTmp.write(fileReader.readLine());
writerTmp.newLine();
}
fileReader.close();
writerTmp.close();
File file = new File("c:\\1\\1.tmp");
file.delete();
}
}