如何读取特定类型数据的文本文件?

时间:2014-12-15 08:44:13

标签: java file while-loop bufferedreader

我有特殊情况,我试图在两个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之后,直到我得到一行(--------)做我的东西。但在下一个循环中它再次开始从开始读取文件。怎么解决这个问题。可以帮助我。

2 个答案:

答案 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;