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);
}
}
在我的代码中我读了两个文件。但问题是我想每次从第一行读取第二个文件(在第二个文件中)。但是目前我的代码在第一次迭代中读取第一行,而不是在第二次迭代中从第二行开始。我想在第二行读取第二行,这意味着在每次迭代中(第二个文件)。
答案 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开销。而标记只会产生内存开销。