• ,

level17.lesson10.home09

Ребят, просто уже не могу дальше долбится с этой задачей.Ну что не так? Про то, что в условии сказано про транзакционность, которой нет, я вообще молчу. Спасибо за помощь заранее.
* Транзакционность
Сделать метод joinData транзакционным, т.е. если произошел сбой, то данные не должны быть изменены.
1. Считать с консоли 2 имени файла
2. Считать построчно данные из файлов. Из первого файла - в allLines, из второго - в forRemoveLines
В методе joinData:
3. Если список allLines содержит все строки из forRemoveLines, то удалить из списка allLines все строки, которые есть в forRemoveLines
4. Если список allLines НЕ содержит каких-либо строк, которые есть в forRemoveLines, то
4.1. очистить allLines от данных
4.2. выбросить исключение CorruptedDataException
Метод joinData должен вызываться в main. Все исключения обработайте в методе main.
*/

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) throws IOException{
        String fileName1, fileName2;
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        fileName1 = reader.readLine();
        fileName2 = reader.readLine();


        BufferedReader reader1=new BufferedReader(new FileReader(fileName1));
        BufferedReader reader2=new BufferedReader(new FileReader(fileName1));

        while(reader1.readLine() !=null){
            allLines.add(reader1.readLine());
        }
        while(reader2.readLine() !=null){
            forRemoveLines.add(reader1.readLine());
        }

        try
        {
            new Solution().joinData();
        }catch (Exception e){

        }
    }
    public void joinData () throws CorruptedDataException
    {
        if (allLines.containsAll(forRemoveLines))
        {
            allLines.removeAll(forRemoveLines);
        } else
        {
            allLines.clear();
            throw new CorruptedDataException();
        }
    }
}
  • ,

level17.lesson10.home09

Ребят, просто уже не могу дальше долбится с этой задачей.Ну что не так? Про то, что в условии сказано про транзакционность, которой нет, я вообще молчу. Спасибо за помощь заранее.
* Транзакционность
Сделать метод joinData транзакционным, т.е. если произошел сбой, то данные не должны быть изменены.
1. Считать с консоли 2 имени файла
2. Считать построчно данные из файлов. Из первого файла - в allLines, из второго - в forRemoveLines
В методе joinData:
3. Если список allLines содержит все строки из forRemoveLines, то удалить из списка allLines все строки, которые есть в forRemoveLines
4. Если список allLines НЕ содержит каких-либо строк, которые есть в forRemoveLines, то
4.1. очистить allLines от данных
4.2. выбросить исключение CorruptedDataException
Метод joinData должен вызываться в main. Все исключения обработайте в методе main.
*/

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) throws IOException{
        String fileName1, fileName2;
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        fileName1 = reader.readLine();
        fileName2 = reader.readLine();


        BufferedReader reader1=new BufferedReader(new FileReader(fileName1));
        BufferedReader reader2=new BufferedReader(new FileReader(fileName1));

        while(reader1.readLine() !=null){
            allLines.add(reader1.readLine());
        }
        while(reader2.readLine() !=null){
            forRemoveLines.add(reader1.readLine());
        }

        try
        {
            new Solution().joinData();
        }catch (Exception e){

        }
    }
    public void joinData () throws CorruptedDataException
    {
        if (allLines.containsAll(forRemoveLines))
        {
            allLines.removeAll(forRemoveLines);
        } else
        {
            allLines.clear();
            throw new CorruptedDataException();
        }
    }
}