Решение через задницу но вроде работает ... что не так ?
package com.javarush.task.task19.task1916;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.CharBuffer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/*
Отслеживаем изменения
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<LineItem>();
public static void main(String[] args) throws Exception {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String url1 = bufferedReader.readLine();
String url2 = bufferedReader.readLine();
HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
//lines.add();
FileReader fileReader1 = new FileReader(url1);
String line = "";
int count = 1;
while (fileReader1.ready()){
int el = fileReader1.read();
if (el == 65279)
continue;
line = line + (char)el;
if (el == 10){
hashMap.put(count, line.trim());
line = "";
count++;
}
}
hashMap.put(count, line);
FileReader fileReader2 = new FileReader(url2);
line = "";
count = 1;
while (fileReader2.ready()){
int el = fileReader2.read();
if (el == 65279)
continue;
line = line + (char)el;
if (el == 10){
line = line.trim();
String value = hashMap.get(count).trim();
value.equals(line);
if (value.compareTo(line) == 0)
lines.add(new LineItem(Type.SAME, value));
else {
if (value.length() == 0)
lines.add(new LineItem(Type.ADDED, line));
else
lines.add(new LineItem(Type.REMOVED, value));
}
line = "";
count++;
}
}
line = line.trim();
String value = hashMap.get(count).trim();
value.equals(line);
if (value.compareTo(line) == 0)
lines.add(new LineItem(Type.SAME, value));
else {
if (value.length() == 0)
lines.add(new LineItem(Type.ADDED, line));
else
lines.add(new LineItem(Type.REMOVED, value));
}
fileReader2.close();
fileReader1.close();
bufferedReader.close();
}
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;
}
}
}