public static void main(String args[])
{
try{
FileReader fr=new FileReader("c:\\ss1.txt");
BufferedReader br=new BufferedReader(fr);

try{
while(br.ready())
{
String line=br.readLine().toString();
if(line.matches("beijing"))
System.out.println("有"+br.readLine().toString());
else
System.out.println("无"+br.readLine().toString());

}
}finally{
fr.close();
}
}
catch(IOException e)
    {
System.out.println("error");
    }
}}
报错java.lang.NullPointerException

解决方案 »

  1.   

    String line=br.readLine().toString(); 你确认你的line不是null吗?
    String line=br.readLine().toString(); 
    System.out.println("line="+line);
      

  2.   

    确实~只发帖不结帖....楼上那句话说的好啊。下面说说你的问题吧:
    String line=br.readLine().toString(); 
    为什么要调用toString()方法?
    readLine()方法返回的就是String类型。
    如下即可:
        String line=br.readLine();
        if(line != null){
          //do something...
        }
    还有:
        if(line.matches("beijing")) 
          System.out.println("有"+br.readLine().toString()); 
        else 
          System.out.println("无"+br.readLine().toString());     }
    如果条件成立了,下面的br.readLine()又会读取一行新的文本。
    直接使用line不就行了?
      

  3.   

    多谢 qusic 是我不小心