Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.FileReader;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.concurrent.atomic.AtomicReference;
- public class Registers {
- public static void main(String[] args) throws IOException {
- Scanner scanner = new Scanner(System.in);
- BufferedReader reader1 = new BufferedReader(new FileReader("C:\\Users\\SINKOPA\\Desktop\\5.txt"));
- BufferedReader reader2 = new BufferedReader(new FileReader("C:\\Users\\SINKOPA\\Desktop\\6.txt"));
- PrintWriter writer = new PrintWriter("C:\\Users\\SINKOPA\\Desktop\\7.txt", "UTF-8");
- // writer.println("The first line");
- // writer.println("The second line");
- // writer.close();
- Map<String, Map<String, String>> file1 = new LinkedHashMap<>();
- Map<String, Map<String, String>> file2 = new LinkedHashMap<>();
- Map<String, Map<String, String>> file2Coppy = new LinkedHashMap<>();
- String line1 = reader1.readLine();
- String line2 = reader2.readLine();
- String originalKey = "";
- while (line1 != null) {
- String mainKey = "";
- String attribute = "";
- String value = "";
- if (line1.startsWith("[")) {
- mainKey = line1;
- originalKey = mainKey;
- file1.put(originalKey, new LinkedHashMap<>());
- }
- if (line1.contains("=")) {
- attribute = line1.substring(0, line1.indexOf('='));
- value = line1.substring(line1.indexOf('=') + 1);
- file1.get(originalKey).put(attribute, value);
- }
- line1 = reader1.readLine();
- }
- String originalKey2 = "";
- while (line2 != null) {
- String mainKey = "";
- String attribute = "";
- String value = "";
- if (line2.startsWith("[")) {
- mainKey = line2;
- originalKey2 = mainKey;
- file2.put(originalKey2, new LinkedHashMap<>());
- file2Coppy.put(originalKey2, new LinkedHashMap<>());
- }
- if (line2.contains("=")) {
- attribute = line2.substring(0, line2.indexOf('='));
- value = line2.substring(line2.indexOf('=') + 1);
- file2.get(originalKey2).put(attribute, value);
- file2Coppy.get(originalKey2).put(attribute, value);
- }
- line2 = reader2.readLine();
- }
- int missingKeysInFile2 = 0;
- while (file2.size() > 0) {
- String keyFileOne = "";
- String attributeFileOne = "";
- String valueFileOne = "";
- String keyFileTwo = "";
- String attributeFileTwo = "";
- String valueFileTwo = "";
- for (Map.Entry<String, Map<String, String>> kvp : file1.entrySet()) {
- keyFileOne = kvp.getKey();
- for (Map.Entry<String, Map<String, String>> kvp1 : file2.entrySet()) {
- keyFileTwo = kvp1.getKey();
- // if (!file2.containsKey(keyFileOne)){
- // missingKeysInFile2++;
- // }
- // System.out.println();
- if (!keyFileOne.equals(keyFileTwo)) {
- missingKeysInFile2++;
- writer.println(keyFileOne);
- for (Map.Entry<String, String> entry : kvp.getValue().entrySet()) {
- String a = entry.getKey();
- String v = entry.getValue();
- writer.println(a + "=" + v);
- }
- writer.println();
- file2.remove(keyFileTwo);
- } else {
- for (Map.Entry<String, String> entry : kvp.getValue().entrySet()) {
- String a = entry.getKey();
- String v = entry.getValue();
- attributeFileOne = a;
- valueFileOne = v;
- for (Map.Entry<String, String> entry1 : kvp1.getValue().entrySet()) {
- String a1 = entry1.getKey();
- String v1 = entry1.getValue();
- attributeFileTwo = a1;
- valueFileTwo = v1;
- if (!attributeFileOne.equals(attributeFileTwo)) {
- writer.println(keyFileOne);
- writer.println(a + "=" + v + " ||| " + null);
- writer.println();
- } else {
- if (!valueFileOne.equals(valueFileTwo)) {
- writer.println(keyFileOne);
- writer.println(a + "=" + v + " ||| " + a + v1);
- writer.println();
- kvp1.getValue().remove(a1, v1);
- break;
- }
- }
- break;
- }
- kvp1.getValue().remove(attributeFileTwo, valueFileTwo);
- }
- file2.remove(keyFileTwo);
- break;
- }
- break;
- }
- }
- }
- System.out.println(missingKeysInFile2);
- //todo for file 2
- int missingKeysInFile1 = 0;
- while (file1.size() > 0) {
- String keyFileOne = "";
- String attributeFileOne = "";
- String valueFileOne = "";
- String keyFileTwo = "";
- String attributeFileTwo = "";
- String valueFileTwo = "";
- for (Map.Entry<String, Map<String, String>> kvp : file2Coppy.entrySet()) {
- keyFileTwo = kvp.getKey();
- for (Map.Entry<String, Map<String, String>> kvp1 : file1.entrySet()) {
- keyFileOne = kvp1.getKey();
- if (!keyFileTwo.equals(keyFileOne)) {
- missingKeysInFile1++;
- writer.println(keyFileTwo);
- for (Map.Entry<String, String> entry : kvp.getValue().entrySet()) {
- String a = entry.getKey();
- String v = entry.getValue();
- writer.println(a + "=" + v);
- }
- writer.println();
- file1.remove(keyFileOne);
- } else {
- for (Map.Entry<String, String> entry : kvp.getValue().entrySet()) {
- String a = entry.getKey();
- String v = entry.getValue();
- attributeFileTwo = a;
- valueFileTwo = v;
- for (Map.Entry<String, String> entry1 : kvp1.getValue().entrySet()) {
- String a1 = entry1.getKey();
- String v1 = entry1.getValue();
- attributeFileOne = a1;
- valueFileOne = v1;
- if (!attributeFileTwo.equals(attributeFileOne)) {
- writer.println(keyFileTwo);
- writer.println(a + "=" + v + " ||| " + null);
- writer.println();
- } else {
- if (!valueFileTwo.equals(valueFileOne)) {
- writer.println(keyFileTwo);
- writer.println(a + "=" + v + " ||| " + a + v1);
- writer.println();
- kvp1.getValue().remove(a1, v1);
- break;
- }
- }
- break;
- }
- kvp1.getValue().remove(attributeFileOne, valueFileOne);
- }
- file1.remove(keyFileOne);
- break;
- }
- break;
- }
- }
- }
- System.out.println(missingKeysInFile1);
- writer.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement