package com.javarush.task.task17.task1721;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/*
Транзакционность
*/
public class Solution {
public static List<String> allLines = new ArrayList<String>();
public static List<String> forRemoveLines = new ArrayList<String>();
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); //консоль для ввода имени файла;
String filename1 = null; //поле для названия первого файла;
String filename2 = null; //поле для названия второго файла;
BufferedReader fileReader1 = null; //консоль для чтения первого файла;
BufferedReader fileReader2 = null; //консоль для чтения второго файла
File file1 = new File(filename1); //первый файл;
File file2 = new File(filename2); //второй файл;
try {
filename1 = reader.readLine();//ввод имени для первого файла;
filename2 = reader.readLine();//ввод имени для второго файла;
reader.close(); //закрытие консоли для ввода имени;
fileReader1 = new BufferedReader(new FileReader(filename1));
fileReader2 = new BufferedReader(new FileReader(filename2));
while (fileReader1.ready()) { //чтение данных первого файла...
allLines.add(fileReader1.readLine()); //и их помещение в список allLines;
}
fileReader1.close(); //закрытие консоли для считывания данных с первого файла;
while (fileReader2.ready()) { //чтение данных второго файла...
forRemoveLines.add(fileReader2.readLine()); //и их помещение в список forRemoveLines;
}
fileReader2.close(); //закрытие консоли для считывания данных со второго файла;
} catch (IOException e) {}
try {
new Solution().joinData();
} catch (CorruptedDataException e) {}
}
public void joinData() throws CorruptedDataException {//должен выбрасывать CorruptedDataException;
for (int i = 0; i < allLines.size(); i++) {
for (int j = 0; j < forRemoveLines.size(); j++) {
if (allLines.get(i).equals(forRemoveLines.get(j))) { //если строки allLines и forRemoveLines совпадают...
allLines.remove(i); //удалить совпадающую строку из allLines;
} else {
for (int k = 0; k < allLines.size(); k++) { //в другом случае, удалить всё из allLines;
allLines.remove(k);
}
throw new CorruptedDataException();//если условие не выполнено, выбросить CorruptedDataException;
}
}
}
}
}
package com.javarush.task.task17.task1721;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Транзакционность
*/
public class Solution {
public static List<String> allLines = new ArrayList<String>();
public static List<String> forRemoveLines = new ArrayList<String>();
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); //консоль для ввода имени файла;
String filename1 = null; //поле для названия первого файла;
String filename2 = null; //поле для названия второго файла;
BufferedReader fileReader1 = null; //консоль для чтения первого файла;
BufferedReader fileReader2 = null; //консоль для чтения второго файла
File file1 = new File(filename1); //первый файл;
File file2 = new File(filename2); //второй файл;
try {
filename1 = reader.readLine();//ввод имени для первого файла;
filename2 = reader.readLine();//ввод имени для второго файла;
reader.close(); //закрытие консоли для ввода имени;
fileReader1 = new BufferedReader(new FileReader(filename1));
fileReader2 = new BufferedReader(new FileReader(filename2));
while (fileReader1.ready()) { //чтение данных первого файла...
allLines.add(fileReader1.readLine()); //и их помещение в список allLines;
}
fileReader1.close(); //закрытие консоли для считывания данных с первого файла;
while (fileReader2.ready()) { //чтение данных второго файла...
forRemoveLines.add(fileReader2.readLine()); //и их помещение в список forRemoveLines;
}
fileReader2.close(); //закрытие консоли для считывания данных со второго файла;
} catch (IOException e) {}
try {
new Solution().joinData();
} catch (CorruptedDataException e) {}
}
public void joinData() throws CorruptedDataException {//должен выбрасывать CorruptedDataException;
for (int i = 0; i < allLines.size(); i++) {
for (int j = 0; j < forRemoveLines.size(); j++) {
if (allLines.get(i).equals(forRemoveLines.get(j))) { //если строки allLines и forRemoveLines совпадают...
allLines.remove(i); //удалить совпадающую строку из allLines;
} else {
throw new CorruptedDataException();//если условие не выполнено, выбросить CorruptedDataException;
}
}
}
}
}