Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level19.lesson10.bonus01;
- import java.io.BufferedReader;
- import java.io.FileReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- /* Отслеживаем изменения
- Считать в консоли 2 имени файла - file1, file2.
- Файлы содержат строки,
- ----------------------------------------------
- file2 является ОБНОВЛЕННОЙ ВЕРСИЕЙ file1, часть строк совпадают.
- Нужно создать объединенную версию строк, записать их в список lines
- ?Что значит "объединенную"
- -----------------------------------------------
- Операции ADDED и REMOVED не могут идти подряд, они всегда разделены SAME
- Пример:
- оригинальный редактированный общий
- file1: file2: результат:(lines)
- строка1 строка1 SAME строка1
- строка2 REMOVED строка2
- строка3 строка3 SAME строка3
- строка4 REMOVED строка4
- строка5 строка5 SAME строка5
- строка0 REMOVED строка0
- строка1 строка1 SAME строка1
- строка2 REMOVED строка2
- строка3 строка3 SAME строка3
- строка5 ADDED строка5
- строка4 строка4 SAME строка4
- строка5 REMOVED строка5
- ----------------------------------------------
- ADDED и REMOVED не могут идти подряд, они всегда разделены SAME
- 1. Первый файл сравниваем со вторым
- (в примере, список(объедененный) содержит все линии из первого файла)
- и в зависимости от того есть ли этот элемент во втором файле добавляет
- один из вариантов ADDED SAME REMOVED.
- SAME может идти подряд
- ----------------------------------------------
- d:\Test_files\Input.txt
- d:\Test_files\Output.txt
- */
- public class Solution {
- public static List<LineItem> lines = new ArrayList<LineItem>();
- public static void main(String[] args) {
- BufferedReader readName = null;
- try
- {
- readName = new BufferedReader(new InputStreamReader(System.in));
- //String fileName1 = readName.readLine();
- String fileName1 = "d:\\Test_files\\Input.txt";
- //String fileName2 = readName.readLine();
- String fileName2 = "d:\\Test_files\\Output.txt";
- readName.close();
- ArrayList<String> fileOneList = fileToList(fileName1);
- ArrayList<String> fileTwoList = fileToList(fileName2);
- for (LineItem li :lines) {
- System.out.println(li.toString());
- }
- } catch (IOException e) {}
- }
- 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;
- }
- public Type getType () {
- return this.type;
- }
- public String getLine () {
- return this.line;
- }
- }
- /**
- * */
- public static ArrayList<String> fileToList (String fileName){
- ArrayList<String> linesFromFile = new ArrayList<>();
- try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
- String line;
- while ((line = br.readLine()) != null) {
- linesFromFile.add(line);
- }
- } catch (IOException e) {}
- return linesFromFile;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement