我有特殊情况,我试图在两个while循环中读取一个文件。在第二个循环中,它从egining读取文件,但我想读取第一个文件,而第一个停止读取文件。
这是我的代码:
while ((line = br.readLine()) != null) {
if (line.startsWith(rootId.trim())) {
break;
}
}
while (!(line = br.readLine()).contains("---------------------------------------------------")) {
// my other code stuff
}
此处我的文件存储数据如下,
-----------------------------------------------------
00001# // this is the rootId
N1
N2
-----------------------------------------------------
00002#
N1
N2
-----------------------------------------------------
00003#
N1
N2
此方法需要rootId
并显示节点(N1,N2)和其他内容。在这里,我的重点是读取文件,直到我在另一个循环中得到rootId
之后,直到我得到一行(--------)做我的东西。但在下一个循环中它再次开始从开始读取文件。怎么解决这个问题。可以帮助我。
答案 0 :(得分:0)
while ((line = br.readLine()) != null)
{
if(line.startsWith(rootId.trim()))
{
break;
}
if(!(line = br.readLine()).contains("---------------------------------------------------"))
{
// my other code stuff
}
}
所有代码都应该在一个循环中,尝试这样,它应该可以工作。
答案 1 :(得分:0)
我认为你不需要两个循环 - 你应该能够使用第一个循环逐行处理你的文件然后使用if语句
while ((line = br.readLine()) != null)
{
if(line.startsWith(rootId.trim())||(line.contains("----"))
{
continue;
}
//Process your nodes here - add more if statements if necessary
}
请注意,您需要
continue;
而不是
break;