Java将方法中的数据与另一个方法中的hashmap进行比较

Java将方法中的数据与另一个方法中的hashmap进行比较,java,io,bufferedreader,Java,Io,Bufferedreader,这段代码正在读取文本文件并创建HashMap。我想做的是比较ModelOne.txt和ModelTwo.txt中的StatusMAP方法 假设我的ModelOne.txt有如下数据: 型号154321,测试,在线 在我的ModelTwo.txt上有如下数据: 型号2,12345,检查,关闭 我已经知道如何在textfile中获取索引数据,但我不能做的是将来自两个的这两个数据与基于StatusMAP的数据进行比较。因此,基本上,如果ModelOne.txt与ModelTwo.txt进行比较,它将得

这段代码正在读取文本文件并创建HashMap。我想做的是比较ModelOne.txt和ModelTwo.txt中的StatusMAP方法

假设我的ModelOne.txt有如下数据:

型号154321,测试,在线

在我的ModelTwo.txt上有如下数据:

型号2,12345,检查,关闭

我已经知道如何在textfile中获取索引数据,但我不能做的是将来自两个的这两个数据与基于StatusMAP的数据进行比较。因此,基本上,如果ModelOne.txt与ModelTwo.txt进行比较,它将得到索引[3],然后它将进行比较,如果索引[3]在ModelOne中在线,它在ModelTwo中应该是OL,如果不是,它将打印“不相等”,否则“它们相等”

这确实是相当长的阅读,但任何帮助,建议或意见将不胜感激。提前谢谢各位

import java.io.BufferedReader;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    import java.io.*;

    public class ReadTxt {

      public static void main(String[] args) throws Exception{

        ReadTxt obj = new ReadTxt();
        obj.PackageMAP();
        obj.StatusMAP();
        obj.ReadModelOne();
        obj.ReadModelTwo();

      }

      public static void StatusMAP() {
          Map<String, String> hashstatus = new HashMap<String, String>(); 
          hashstatus.put("Offline", "OFF");
          hashstatus.put("Online", "OL");
       }


      public static void PackageMAP() {

        String csvFile = "Names.txt";
        BufferedReader br = null;
        String line = "";
        String cvsSplitBy = ",";

        try {

            Map<String, String> maps = new HashMap<String, String>();

            br = new BufferedReader(new FileReader(csvFile));
            while ((line = br.readLine()) != null) {

                // use comma as separator
                String[] packagecode = line.split(cvsSplitBy);

                maps.put(packagecode[0], packagecode[1]);

            }

            //loop map
            for (Map.Entry<String, String> entry : maps.entrySet()) {

                System.out.println("Name Package one \t" + entry.getKey()
                + "\t"
                + "|"
                + "\t"
                + "Name Package two \t"
                + entry.getValue());


            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        System.out.println("This is all the Name packages");
      }


       public static void ReadModelOne() throws Exception{
        BufferedReader br = new BufferedReader(new FileReader("ModelOne.txt"));
        String line = null;

        while ((line = br.readLine()) != null) {
          String[] MOne_STATUS = line.split(",");
          for (String inputOne : MOne_STATUS) {
          inputOne = MOne_STATUS[2];

          }
        }
        br.close(); 
      }

      public static void ReadModelTwo() throws Exception{
        BufferedReader br = new BufferedReader(new FileReader("ModelTwo.txt"));
        String line = null;
        while ((line = br.readLine()) != null) {
            String[] MTwo_STATUS = line.split(",");
            for (String inputTwo : MTwo_STATUS) {
                inputTwo = MTwo_STATUS[2];

            }   
        }
        br.close(); 
    }


        public static void checkStatus() {

        // do the checking here for status

    }


    }
尝试如下:

String data1 = "Model1, 54321, Test, Online";
String data2 = "Model2, 12345, Check, OFF";

String output = (data1.split(", ")[3].equalsIgnoreCase("Online") && 
                 data2.split(", ")[3].equalsIgnoreCase("OL")) ? 
                 "Equal" :
                 "Not Equal";

System.out.println(output);

方法StatusMAP用于什么?它创建一个局部变量,但不返回任何内容。你认为“hashstatus”可以从其他方法中使用吗?嗯。。。如果只使用静态方法,为什么要创建ReadTxt?@skozlov-假设StatusMAP散列类似于PackageMAP上的散列。对不起,我只是没有更新代码,但是假设StatusMAP的变量是packagecode。它返回hashmap@fabian读TXT最好的方法是什么?我不能用这个,我正在读一个有几千行的文本文件。这就是为什么我把它放在foreach循环中的原因。@tuturyoka我只是粘贴了如何比较从两个不同文件中获取的两个独立数据。你只能采用比较逻辑。