не понимаю в чем проблема, при тестировании всё создается как нужно
package com.javarush.task.task18.task1828;
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws IOException {
if (args.length != 0) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileSourseName = reader.readLine();
// /Users/alkchistov/IdeaProjects/a.txt
FileInputStream inputStream = new FileInputStream(fileSourseName);
int data;
ArrayList<String> stringsArray = new ArrayList<String>();
while (inputStream.available() > 0) {
ArrayList<Character> charsArray = new ArrayList<Character>();
while ((data = inputStream.read()) != 10 && data != -1)
charsArray.add((char) data);
String id = "";
for (int i = 0; i < 8 && charsArray.get(i) != 32; i++)
id += (char) charsArray.get(i);
if (args[0].equals("-d")) {
if (!args[1].equals(id)) {
String s = "";
while (charsArray.size() < 50)
charsArray.add((char) 32);
for (char c : charsArray) {
s += c;
}
s += "\n";
stringsArray.add(s);
}
} else if (args[0].equals("-u")) {
if (args[1].equals(id)) {
charsArray.clear();
for (int i = 0; i < 8; i++)
if (args[1].length() > i)
charsArray.add((char) args[1].getBytes()[i]);
else
charsArray.add((char) 32);
if (args.length > 5) {
int b = 0;
int a = 2;
int c = 0;
int count = args[a].length();
while (args.length - 2 > a && c < 30) {
if (count > c++)
charsArray.add((char) args[a].getBytes()[b++]);
else {
if (a != args.length - 3) {
a++;
count += args[a].length();
b = 0;
}
charsArray.add((char) 32);
count++;
}
}
a++;
for (int i = 0; i < 8; i++)
if (args[a].length() > i)
charsArray.add((char) args[a].getBytes()[i]);
else
charsArray.add((char) 32);
a++;
for (int i = 0; i < 4; i++)
if (args[a].length() > i)
charsArray.add((char) args[a].getBytes()[i]);
else
charsArray.add((char) 32);
} else {
for (int i = 0; i < 30; i++)
if (args[2].length() > i)
charsArray.add((char) args[2].getBytes()[i]);
else
charsArray.add((char) 32);
for (int i = 0; i < 8; i++)
if (args[3].length() > i)
charsArray.add((char) args[3].getBytes()[i]);
else
charsArray.add((char) 32);
for (int i = 0; i < 4; i++)
if (args[4].length() > i)
charsArray.add((char) args[4].getBytes()[i]);
else
charsArray.add((char) 32);
}
}
String s = "";
while (charsArray.size() < 50)
charsArray.add((char) 32);
for (char c : charsArray)
s += c;
s += (char) 13;
s += (char) 10;
stringsArray.add(s);
}
}
inputStream.close();
FileOutputStream outputStream = new FileOutputStream(fileSourseName);
for (String s: stringsArray) {
outputStream.write(s.getBytes());
}
outputStream.close();
}
}
}