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