读取文件直到某个字符(BufferedReader)

时间:2014-07-30 04:28:52

标签: java bufferedreader

这是我的代码无效:

try 
{
    while ((line1 = br.readLine()).substring(6).equals(name)) 
    {
        text = text + line1; 
        //text = text + '\n';
    }
} 
catch (IOException e) 
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}

我要做的是从文本文件中读取文本:

Name: Thailand.jpg.
Brief: This is Pattaya
Info: Nice city you know

Name: Austria.jpg
Brief: This is Austria
Info: Schwarzenegger was born here

现在我只想设置"这是奥地利"文本。但不能。

谢谢!

2 个答案:

答案 0 :(得分:0)

首先,我不确定你打算在这做什么。 @Rod_Algonquin也问了我的问题。you only want to get the string "This is Austria" from the file?,但你没有对此提出任何评论。

假设你要做类似的事情,你可以尝试如下。

           try {
            BufferedReader br=new BufferedReader(
                          new FileReader(new File("/home/ruchira/Test.txt")));
            String line;
            String text = "";
            try {
                while ((line=br.readLine())!=null){
                       if(line.contains("Austria.jpg")){
                           String line1=br.readLine();
                           if(line1!=null){
                               text=text+line1.split(": ")[1];
                           }
                       }
                }
                System.out.println(text);
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

答案 1 :(得分:0)

你的子串索引是错误的。请重新计算一下。此外,您还必须检查空指针条件。你应该在循环条件下改变你:

try 
{    
    while((line1=br.readLine())!=null && line1.substring(8).equals(name))
    {
        text = text + line1; 
        //text = text + '\n';
    }
}
catch (FileNotFoundException e) 
{
    e.printStackTrace();
} 
catch (IOException e) 
{
    e.printStackTrace();
}

在计算索引时,还应考虑使用空格。因此,您所需的子字符串索引变为8而不是6。