zoukankan      html  css  js  c++  java
  • 找出文件1中有而文件2中没有的数据

        // 使用stream方法实现
        public static List<String> fileterData() throws IOException {
    
            String file1Content = new String(Files.readAllBytes(Paths.get(".\src\main\resources\File1")));
            String file2Content = new String(
                    Files.readAllBytes(Paths.get(".\src\main\resources\File2")));
            // String 的 split方法有隐患,WINDOWS下换行符使用
    ,Linux下使用的是
    
            List<String> file1Str = Arrays.asList(file1Content.split("
    "));
            List<String> file2Str= Arrays.asList(file2Content.split("
    "));
            // 过滤收集,遍历file1,每个都在file2中进行检查一遍,如果file2中没有的就收集起来
            List<String> filtedStr = file1Str.stream().filter(t -> false == file2Str.contains(t))
                    .collect(Collectors.toList());
            return filtedStr;
    
        }

    上述是通过流的方式实现的,下面还有一种方法,通过BufferedReader,在读取文件的时候也略有差异:

        // 找出file1中有但是file2中没有的数据
        public static List<String> filterData() throws IOException {
            // TODO Auto-generated method stub
            String file1Path = ".\src\main\resources\File1";
            String file2Path = ".\src\main\resources\File2";
    
            BufferedReader file1br = new BufferedReader(new FileReader(file1Path));
            BufferedReader file2br = new BufferedReader(new FileReader(file2Path));
            String line = "";
    
            List<String> file2String= new ArrayList<>();
            while ((line = file2br.readLine()) != null) {
                file2String.add(line);
    
            }
            while ((line = file1br.readLine()) != null) {
                if (false == file2String.contains(line)) {
                    System.out.println(line);
                } else {
                    file2String.remove(line);
                }
    
            }
    return file2String;
    
        }

    文件格式样例  File1:

    String1

    String2

    String3

    文件格式样例  File2:

    String1

    String2

    String4

  • 相关阅读:
    Java多线程总结之线程安全队列Queue
    Java四种线程池
    Java多线程同步 synchronized 关键字的使用
    mysql存储过程语法及实例
    Mysql 中有关日期的函数(sql)
    mysql sql常用语句大全
    spring主要的作用?
    Java:描述反射机制的作用?举几个反射的应用?
    设计模式之六大原则(转载)
    Android之微信开放平台创建应用
  • 原文地址:https://www.cnblogs.com/ilazysoft/p/6267103.html
Copyright © 2011-2022 走看看