从每次迭代的第一行开始

时间:2015-10-09 11:41:11

标签: java iteration

我正在读两个文件。我的代码如下:

BufferedReader comone = new BufferedReader(new FileReader("G:\\xml_one.txt"));
BufferedReader comtwo = new BufferedReader(new FileReader("G:\\xml_two.txt"));

int a = 0;          
String one;
String two;

while ((one = comone.readLine()) != null) { 

        a= -111111;
        while ((two = comtwo.readLine()) != null) { 


        if(one.equals(two) == false)
            {
                a =1;
            }
        else
            {
                a=0;
                break;

            }               
        }

        if(a==1)
        {   
            System.out.println("Check this name : "+one);
        }   
    }

在我的代码中我读了两个文件。但问题是我想每次从第一行读取第二个文件(在第二个文件中)。但是目前我的代码在第一次迭代中读取第一行,而不是在第二次迭代中从第二行开始。我想在第二行读取第二行,这意味着在每次迭代中(第二个文件)。

1 个答案:

答案 0 :(得分:0)

您可以标记string-join(/test/nodeA/nodeC, '')的开头,然后在第二次开始之后,拨打comtwo,这样您就会得到类似的信息:

comtwo.reset()

这应该将你的while ((one = comone.readLine()) != null) { a= -111111; comtwo.mark(someInt); // basically just the length you expect to read in comtwo while ((two = comtwo.readLine()) != null) { if(one.equals(two) == false) { a =1; } else { a=0; break; } } comtwo.reset(); if(a==1) { System.out.println("Check this name : "+one); } } 返回到循环之后的第一行标记a.k.a.

Eran的答案也可以,但这会导致每次迭代中的文件打开操作,从而产生IO开销。而标记只会产生内存开销。