Java 比较文件的某些部分

Java 比较文件的某些部分,java,Java,我有一个一整天都在想的问题。我想读取文件的一部分,并将其与同一文件的其他部分进行比较。如果我能得到一些关于如何收集第一组行并与其他行进行比较的逻辑,然后移动到下一组并与剩余行进行比较,直到我将每个行进行比较 我想完成的是阅读前3行跳过下一行将其与下3行进行比较,跳过下一行并与下3行进行比较,然后移动到第2 3行并与第3组和第4组进行比较,依此类推。所以我想做的是 for{ int i=0; i < file.lenght; i++ for {int j=0; j=i+1; i

我有一个一整天都在想的问题。我想读取文件的一部分,并将其与同一文件的其他部分进行比较。如果我能得到一些关于如何收集第一组行并与其他行进行比较的逻辑,然后移动到下一组并与剩余行进行比较,直到我将每个行进行比较

我想完成的是阅读前3行跳过下一行将其与下3行进行比较,跳过下一行并与下3行进行比较,然后移动到第2 3行并与第3组和第4组进行比较,依此类推。所以我想做的是

 for{ int i=0; i < file.lenght; i++

     for {int j=0; j=i+1; i++{

   }}

假设文件适合内存,我会将所有行读入一个包含Files.readAllLines(path,charset)(Java7)的列表,然后对列表进行比较

如果文件太大,则创建一个方法

List<String> readLines(Scanner sc, int nLines) {
    List<String> list = new ArrayList<>();
    for (int i = 0; i < nLines; i++) {
        list.add(sc.nextLine());
    }
    return list;
}
列出读取行(扫描仪sc、int nLines){
列表=新的ArrayList();
对于(int i=0;i
并使用它读取/跳过部分文件

Scanner sc = new Scanner(new File("path"));
List<String> list1 = readLines(sc, 3);
readLines(sc, 1);
List<String> list2 = readLines(sc, 3);
boolean res = list1.equals(list2)
Scanner sc=新扫描仪(新文件(“路径”);
列表1=读取行(sc,3);
读线(sc,1);
列表2=读取行(sc,3);
布尔res=list1.equals(list2)

假设文件适合内存,我会将所有行读取到包含Files.readAllLines(path,charset)(Java 7)的列表中,然后对列表进行比较

如果文件太大,则创建一个方法

List<String> readLines(Scanner sc, int nLines) {
    List<String> list = new ArrayList<>();
    for (int i = 0; i < nLines; i++) {
        list.add(sc.nextLine());
    }
    return list;
}
列出读取行(扫描仪sc、int nLines){
列表=新的ArrayList();
对于(int i=0;i
并使用它读取/跳过部分文件

Scanner sc = new Scanner(new File("path"));
List<String> list1 = readLines(sc, 3);
readLines(sc, 1);
List<String> list2 = readLines(sc, 3);
boolean res = list1.equals(list2)
Scanner sc=新扫描仪(新文件(“路径”);
列表1=读取行(sc,3);
读线(sc,1);
列表2=读取行(sc,3);
布尔res=list1.equals(list2)

我理解你用文字表达的意思,有点-你能举例说明一下你正在经历的文件缩减周期吗?文件是一个日志文件,它有几个部分,分别是“开始”和“输出”,还有“结束”,它以这种格式一直延续到文件结束。我所要做的就是检查是否有重复,所以我必须将开始和结束之间的所有输出相互比较,直到文件结束,以确保没有重复。我明白你在说什么,你能举例说明你正在经历的文件缩减周期吗?这个文件是一个日志文件,它有一些部分,说开始,一些输出,它说结束,它以这种格式继续,直到文件结束。我所要做的就是检查是否有重复,所以我必须将开始和结束之间的所有输出相互比较,直到文件结束,以确保没有重复。该文件也将是重复的,但要将所有内容读取到内存中,是否有其他方法可以执行此操作?这非常有帮助,但通过查看该文件,我发现它们并不都是3跳过之前的行,有些是4行,有些是6行,然后我才能跳过任何想法。文件太多了,但要把所有内容都读到内存中,还有其他方法吗?这很有帮助,但通过查看文件,我发现它们在跳过之前不都是3行,有些是4行,有些是6行,然后我才能跳过任何想法