Java 从文本文件读取行和空点异常

Java 从文本文件读取行和空点异常,java,Java,当我删除选中连字符的条件时,它将读取文件中的所有行,并在末尾显示null pointer exception。当我包含这个条件时,它会读取文件,但每当它找到第一个空行时,它就会停止并抛出一个空指针异常。当您尝试读取内部的行时,如果您没有进行任何空检查,这就是为什么它会导致NPE for(File d : documents) { if(d.isFile()) count++; { BufferedReader in

当我删除选中连字符的条件时,它将读取文件中的所有行,并在末尾显示null pointer exception。当我包含这个条件时,它会读取文件,但每当它找到第一个空行时,它就会停止并抛出一个空指针异常。

当您尝试读取内部的行时,如果您没有进行任何空检查,这就是为什么它会导致NPE

for(File d : documents)
    {

        if(d.isFile())
        count++;
        {
            BufferedReader inputStream = null;
            try 
            {
                inputStream = new BufferedReader(new FileReader(d));
                String line;
                while ((line = inputStream.readLine()) !=null)
                { 
                       //condition to check the hyphen at end of line                       
                       if(line.charAt(line.length() -1) == 45)
                       {
                          line = line.replace(line.charAt(line.length() -1),' ');                                   
                          String line2 = inputStream.readLine();
                          line = line.trim()+line2;
                       }
                    System.out.println(line);

            }
            finally
            {
                try
                {
                    if(inputStream != null)
                    inputStream.close();
                }
                catch(IOException e)
                {
                }
            }
        }
       // System.out.println("\n" +  tokens1);
        //System.out.println("\n" +  count);
    }
}
catch(Exception e)
{
    System.out.println("Null point exception");
}

检查if语句中括号可能重复…是的,这段代码不会编译!这段代码没有编译,loli在发布时一定错过了大括号,但是代码编译了。我认为有一些逻辑错误。谢谢您
  while ((line = inputStream.readLine()) !=null)
            { 
                   //condition to check the hyphen at end of line                       
                   if(line.charAt(line.length() -1) == 45)
                   {
                      line = line.replace(line.charAt(line.length() -1),' ');                                   
                      String line2 = inputStream.readLine(); // No null checking is being made here
                      line = line.trim()+line2;
                   }
                System.out.println(line);

        }