Тест с примера работает корректно. Подскажите с чем еще протестить надо.
package com.javarush.task.task19.task1916;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
/*
Отслеживаем изменения
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<LineItem>();
static ArrayList<String> original = new ArrayList<>();
static ArrayList<String> updated = new ArrayList<>();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file1 = reader.readLine();
String file2 = reader.readLine();
reader.close();
FileReader fileReader = new FileReader(file1);
BufferedReader bufRead1 = new BufferedReader(fileReader);
FileReader fileReader1 = new FileReader(file2);
BufferedReader bufRead2 = new BufferedReader(fileReader1);
int count = 0;
parseArrayToString(bufRead1, original);
parseArrayToString(bufRead2, updated);
try {
for (int i = 0; i < original.size() - 1; i++) {
String originalGetI = original.get(i);
String originalGetIplus = original.get(i + 1);
String updatedGet = updated.get(i);
if (original.get(i).equals(updated.get(i))) {
lines.add(i, new LineItem(Type.SAME, original.get(i)));
} else if (updated.get(i).equals(original.get(i + 1))) {
lines.add(i, new LineItem(Type.REMOVED, original.get(i)));
updated.add(i, null);
}
else if (!(original.get(i + 1)).equals(updated.get(i))) {
lines.add(i, new LineItem(Type.ADDED, updated.get(i)));
original.add(i, null);
}
}
} catch (NullPointerException e) {
}
if (original.size() > updated.size()){
lines.add(new LineItem(Type.REMOVED, original.get(original.size() - 1)));
}else if (original.size() < updated.size()){
lines.add(new LineItem(Type.ADDED, updated.get(updated.size() - 1)));
}
else if (original.size() == updated.size()){
lines.add(new LineItem(Type.SAME,updated.get(updated.size() - 1)));
}
fileReader.close();
fileReader1.close();
bufRead1.close();
bufRead2.close();
}
public static void parseArrayToString(BufferedReader bufRead1, ArrayList<String> original) throws IOException {
while (bufRead1.ready()){
String first = bufRead1.readLine();
original.add(first);
}
}
public static enum Type {
ADDED, //добавлена новая строка
REMOVED, //удалена строка
SAME //без изменений
}
public static class LineItem {
public Type type;
public String line;
public LineItem(Type type, String line) {
this.type = type;
this.line = line;
}
}
}