My code works fine with both test files, result is perfectly fine.
Where can I find my mistake? What is wrong here?
Thank you all!
package pl.codegym.task.task19.task1916;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Śledzenie zmian
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<>();
public static void main(String[] args) throws IOException {
BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
String file1 = read.readLine();
String file2 = read.readLine();
read.close();
BufferedReader reader1 = new BufferedReader(new FileReader(file1));
BufferedReader reader2 = new BufferedReader(new FileReader(file2));
/* BufferedReader reader1 = new BufferedReader(new FileReader("C:\\Users\\piotr\\IdeaProjects\\CodeGymTasks\\2.JavaCore\\src\\pl\\codegym\\task\\task19\\task1916\\1.txt"));
BufferedReader reader2 = new BufferedReader(new FileReader("C:\\Users\\piotr\\IdeaProjects\\CodeGymTasks\\2.JavaCore\\src\\pl\\codegym\\task\\task19\\task1916\\2.txt"));*/
while (reader1.ready()){
String a = reader1.readLine();
String b = reader2.readLine();
if (a.equals(b)){
lines.add(new LineItem(Type.SAME, a));
} else if (a.equals("")&& !b.equals("")){
lines.add(new LineItem(Type.ADDED, b));
} else if (!a.equals("") && (b==null || b.equals(""))){
lines.add(new LineItem(Type.REMOVED, a));
}
}
String a = reader1.readLine();
String b = reader2.readLine();
if (a == null && b != null){
lines.add(new LineItem(Type.ADDED, b));
} else if (a != null && !a.equals("") && a.equals(b)){
lines.add(new LineItem(Type.SAME, b));
} else if (a != null && b == null){
lines.add(new LineItem(Type.REMOVED, a));
}
reader1.close();
reader2.close();
/* for(LineItem item : lines){
System.out.println(item.type + " " + item.line);
}*/
}
public static enum Type {
ADDED, // Dodana nowa linia
REMOVED, // Linia usunięta
SAME // Bez zmian
}
public static class LineItem {
public Type type;
public String line;
public LineItem(Type type, String line) {
this.type = type;
this.line = line;
}
}
}