2015-10-07 2 views
-2
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"); 
} 

нулевой точки Когда я удалить условие проверить дефис, он читает все строки в файлах и отображает исключения нулевого указателя в конце. Когда я включаю это условие, он читает файл, но всякий раз, когда он находит первую пустую строку, он останавливается и выдает исключение с нулевым указателем.Чтение строки из текстового файла и исключения

+4

Возможный дубликат [Что такое исключение нулевого указателя, и как это исправить?] (http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how-do-fix-it) – John3136

+2

Проверьте скобки в инструкции if ... –

+0

Yeps, этот код не будет компилироваться! – alfasin

ответ

0

При попытке Readline внутри, если у вас нету сделал любой нулевой проверки, поэтому она приводит к NPE

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); 

     } 
Смежные вопросы