Подскажите на каком примере протестировать? Последний пункт не принимает.
package com.javarush.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;
/*
Отслеживаем изменения
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<LineItem>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
/* String r1 = "C://JavaRushTasks/123.txt";
String r2 = "C://JavaRushTasks/124.txt";
BufferedReader rfile1 = new BufferedReader(new FileReader(r1));
BufferedReader rfile2 = new BufferedReader(new FileReader(r2));
*/ BufferedReader rfile1 = new BufferedReader(new FileReader(br.readLine()));
BufferedReader rfile2 = new BufferedReader(new FileReader(br.readLine()));
br.close();
ArrayList<String> listFile1 = new ArrayList<>();
ArrayList<String> listFile2 = new ArrayList<>();
while (rfile1.ready()) {
listFile1.add(rfile1.readLine());
}
rfile1.close();
while (rfile2.ready()) {
listFile2.add(rfile2.readLine());
}
rfile2.close();
int ListSize = listFile1.size();
if (listFile1.size() < listFile2.size()) {
ListSize = listFile2.size();
}
for (int i = 0, j = 0; i < ListSize && j < ListSize; i++, j++) {
try {
String fs11 = readLineL(listFile1, i);
String fs21 = readLineL(listFile2, j);
String fs12 = readLineL(listFile1, (i + 1));
String fs22 = readLineL(listFile2, (j + 1));
if (fs11.equals(fs21)) {
lines.add(new LineItem(Type.SAME, fs11));
}//same
else if ((fs11.equals(fs22))||(fs11.equals(""))) {
lines.add(new LineItem(Type.ADDED, fs21));
i--;
}//add, j++
else if ((fs12.equals(fs21))||(fs22.equals(""))) {
lines.add(new LineItem(Type.REMOVED, fs11));
j--;
}//remove i++
} catch (NullPointerException e) {
System.out.print(e);
}
}// for (LineItem lineItem : lines) { System.out.println(lineItem.type + " " + lineItem.line); }
}
public static String readLineL(ArrayList<String> listFile, int i){
if(i <= listFile.size()-1) { return listFile.get(i);}
else return "";
}
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;
}
}
}