Подскажите что ему конкретно не нравиться??
Сравниваю по строкам...
package com.javarush.task.task19.task1916;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Отслеживаем изменения
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<LineItem>();
public static List<String> files1 = new ArrayList<String>();
public static List<String> files2 = new ArrayList<String>();
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();
StringBuilder builder1 = new StringBuilder();
StringBuilder builder2 = new StringBuilder();
FileReader f1 = new FileReader(file1);
FileReader f2 = new FileReader(file2);
while (f1.ready()){
builder1.append((char) f1.read());
}
while (f2.ready()){
builder2.append((char) f2.read());
}
f1.close();
f2.close();
String[] t1 = builder1.toString().split("\n");
String[] t2 = builder2.toString().split("\n");
for (int i = 0; i < t1.length; i++) {
files1.add(t1[i].trim());
}
for (int i = 0; i < t2.length; i++) {
files2.add(t2[i].trim());
}
while (true) {
if (files1.size() > files2.size()) {
files2.add("");
}else if (files1.size() < files2.size()){
files1.add("");
}else if (files1.size() == files2.size()){
break;
}
}
for (int i = 0; i < files1.size(); i++) {
String txt1 = files1.get(i);
String txt2 = files2.get(i);
if (txt1.equals(txt2) && !txt1.equals("") && !txt2.equals("")){
lines.add(new LineItem(Type.SAME, txt1));
}else if (txt1.equals("") && !txt2.equals("")){
lines.add(new LineItem(Type.ADDED, txt2));
}else if (!txt1.equals("") && txt2.equals("")){
lines.add(new LineItem(Type.REMOVED, txt1));
}else if (txt1.equals("") && txt2.equals("")){
lines.add(new LineItem(null, ""));
}
}
for (LineItem i : lines){
System.out.println(i.type + " " + i.line);
}
}
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;
}
}
}