I tried this solution and it works properly. What can be the problem?
package com.codegym.task.task19.task1916;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Tracking changes
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<>();
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
String fileName1=bufferedReader.readLine();
String fileName2 =bufferedReader.readLine();
bufferedReader.close();
BufferedReader bufferedReader1=new BufferedReader(new FileReader(fileName1));
BufferedReader bufferedReader2=new BufferedReader(new FileReader(fileName2));
ArrayList<String> listFile1=new ArrayList<>();
ArrayList<String> listFile2=new ArrayList<>();
ArrayList<LineItem> itemList=new ArrayList<>();
while(bufferedReader1.ready()){
String line=bufferedReader1.readLine();
listFile1.add(line);
}
bufferedReader1.close();
while(bufferedReader2.ready()){
String line=bufferedReader2.readLine();
listFile2.add(line);
}
bufferedReader2.close();
if (listFile1.size() > listFile2.size()) {
listFile2.add("");
} else {
listFile1.add("");
}
for(int i=0;i<listFile1.size();i++){
if(listFile1.get(i).equals(listFile2.get(i)))
itemList.add(new LineItem(Type.SAME,listFile1.get(i)));
if(listFile1.get(i).equals("") && !listFile2.get(i).equals(""))
itemList.add(new LineItem(Type.ADDED,listFile2.get(i)));
if(!listFile1.get(i).equals("") && listFile2.get(i).equals(""))
itemList.add(new LineItem(Type.REMOVED,listFile1.get(i)));
}
}
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;
}
}
}