Думаю может дело в символах конца строки. Не знаю.
package com.javarush.task.task18.task1828;
/*
Прайсы 2
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws IOException {
if (args == null || args.length < 2) return;
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
File fileName = new File(bf.readLine());
bf.close();
bf = new BufferedReader(new FileReader(fileName));
ArrayList<String> file = new ArrayList<>();
String line;
while ((line = bf.readLine()) != null){
file.add(line);
}
bf.close();
BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
if ("-d".equals(args[0]))
for (int i = 0; i < file.size(); i++) {
String s = file.get(i);
if(s.substring(0, 8).trim().equals(args[1]))
continue;
if (i != 0) bw.write(System.lineSeparator());
bw.write(s);
}
if ("-u".equals(args[0])){
StringBuilder name = new StringBuilder();
for (int i = 2; i < args.length - 2; i++) {
if (name.length() > 0) name.append(" ");
name.append(args[i]);
}
for (int i = 0; i < file.size(); i++) {
String s = file.get(i);
if (i != 0) bw.write(System.lineSeparator());
if(s.substring(0, 8).trim().equals(args[1])) {
String ff = String.format("%-8.8s%-30.30s%-8.8s%-4.4s",
args[1], name.toString(), args[args.length - 2], args[args.length - 1]);
bw.write(ff);
continue;
}
bw.write(s);
}
}
bw.flush();
bw.close();
}
}