找出文件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下换行符使用\r\n,Linux下使用的是\n
        List<String> file1Str = Arrays.asList(file1Content.split("\r\n"));
        List<String> file2Str= Arrays.asList(file2Content.split("\r\n"));
        // 过滤收集,遍历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

时间: 2024-10-16 06:46:36

找出文件1中有而文件2中没有的数据的相关文章

[Python Tips]如何找出Python list中有重复的项

如果一个Python list中有很多重复的项,如何有效地找到多少重复的项呢? 可以使用collection的Counter方法.. >>> from collections import Counter >>> Counter([11,22,11,44,22,33]) Counter({11: 2, 22: 2, 33: 1, 44: 1}) [Python Tips]如何找出Python list中有重复的项,布布扣,bubuko.com

按字典值排序--找出大小最大的十个文件

问题分析: 需要确认某路径下所有文件的大小 需要排序,找出最大的十个 以字典的形式保存数据 准备知识: operator模块: fun = operator.itemgetter(1), fun 是一个由operator.itemgetter(1) 返回的函数,当函数fun作用在某个对象时,返回被作用的对象的第1维的值.例如: lis = (6, 56) fun(lis) # 返回lis[1] 注意:operator.itemgetter(1) 并不返回值,返回的是函数,当函数作用在对象时,才会

算法-找出其他出现偶数次的数组中出现1次,2次,3次的数

#include <cstdio> #include <cstring> #include <algorithm> #include <map> #include <iostream> #include<vector> #include<string> #include<set> #include<unordered_set> #include<queue> #include<ma

找出一段连续的正整数序列中重复(或缺失)的那个数

有这样一个简单的问题:给定n-m+2(或n-m)个正整数组成的乱序序列,其元素是m到n(n>m>=1)中的互不相同的正整数,有且只有一个是重复(或缺失)的.如何找到那个数?(这里假定缺失的数不是n或m) 由Ivony提出的异或算法想到的. 1.由于[m,n]这段闭区间的异或算法暂时没有想到,所以就用[1,m-1]^[1,n]来间接得出[m,n]这段闭区间的异或. 2.求出待求数组的异或,将此结果再与上面[m,n]的异或结果再次异或,即可得到那唯一的一个重复数(或缺失的那个数) 1 using

找出现有Vector或ArrayList或数组中重复的元素&amp;给现有Vector或ArrayList或数组去重

//直接上代码: public static void main(String[] args) { List<Integer> list = new Vector<Integer>(20); for (int i = 0; i < 10; i++) { list.add(i % 3); list.add(i % 6); list.add(i % 2); list.add(i % 4); } System.out.println("原始元素:" + list

C#读txt文件并写入二维数组中(txt数据行,列未知)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace 二维数组 { class Program { static void Main(string[] args) { int row = 0;//行 int col = 0;//lie FileStream fs; string path = @"C:\Documents an

Linux/Unix 怎样找出并删除某一时间点的文件(转)

在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不需要长时间保留的,一般保留7天内的文件即可,那么我们怎么找出并删除7天前产生的日志文件和备份文件并将其删除呢? Linux/Unix提供了find 操作系统命令,使用该命令可以实现我们的目标. $man find 可以查看find命令的使用方法. 1. 找出 n 天前的文件 $find /temp/ -type f -mtime +n

Linux/Unix 怎样找出并删除某一时间点的文件

Linux/Unix 怎样找出并删除某一时间点的文件 在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不需要长时间保留的,一般保留7天内的文件即可,那么我们怎么找出并删除7天前产生的日志文件和备份文件并将其删除呢? Linux/Unix提供了find 操作系统命令,使用该命令可以实现我们的目标.$man find 可以查看find命令的使用方法.1. 找出 n 天前的文件 $find

Linux运维之批量下载指定网站的100个图片文件,并找出大于200KB的文件

题目为: 有一百个图片文件,它们的地址都是http://down.fengge.com/img/1.pnghttp://down.fengge.com/img/2.png-一直到http://down.fengge.com/img/100.png批量下载这100个图片文件,并找出其中大于200KB的文件. 这个使用shell脚本实现 #!/bin/bash for i in {1..100} do wget http://down.fengge.com/img/$i.png done find