...и опять по последнему пункту не проходит.
Файлы создал такие же, как и в условиях. Вывод в консоль тоже такой же.
Что не так, не могу понять.
package com.javarush.task.task19.task1916;
import java.io.*;
import java.util.*;
/* Отслеживаем изменения */
public class Solution {
public static List<LineItem> lines = new ArrayList<>();
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader fileOne = new BufferedReader(new FileReader(reader.readLine()));
BufferedReader fileTwo = new BufferedReader(new FileReader(reader.readLine()))) {
// for quick testing
// BufferedReader fileOne = new BufferedReader(new FileReader("file1.txt"));
// BufferedReader fileTwo = new BufferedReader(new FileReader("file2.txt"))) {
List<String> fileOneList = new LinkedList<>();
List<String> fileTwoList = new LinkedList<>();
String line;
while ((line = fileOne.readLine()) != null) {
fileOneList.add(line);
}
while ((line = fileTwo.readLine()) != null) {
fileTwoList.add(line);
}
for (int i = 0; i < fileTwoList.size(); i++) {
if (fileOneList.get(0).equals(fileTwoList.get(i))) {
lines.add(new LineItem(Type.SAME, fileTwoList.get(i)));
fileOneList.remove(0);
} else if (fileOneList.size() > 1 && fileOneList.get(1).equals(fileTwoList.get(i))) {
lines.add(new LineItem(Type.REMOVED, fileOneList.get(0)));
lines.add(new LineItem(Type.SAME, fileOneList.get(1)));
fileOneList.remove(0);
fileOneList.remove(0);
} else if (fileTwoList.size() > i + 1 && fileTwoList.get(i + 1).equals(fileOneList.get(0))) {
lines.add(new LineItem(Type.ADDED, fileTwoList.get(i)));
}
}
if (!fileOneList.isEmpty()) {
lines.add(new LineItem(Type.REMOVED, fileOneList.get(0)));
}
for (LineItem item : lines) {
System.out.println(item.type.toString() + " " + item.line);
}
} catch (IOException e) {
e.printStackTrace();
}
} // end of main
public static enum Type {
ADDED, // New line added
REMOVED, // Line deleted
SAME // No change
}
public static class LineItem {
public Type type;
public String line;
public LineItem(Type type, String line) {
this.type = type;
this.line = line;
}
}
}