NullPointerException, когда я использую буферизованный читатель - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть этот фрагмент кода, который читает файл и создает список массива строк для преобразования в список строк и столбцов. Этот код работает хорошо, но я не знаю, почему выбрасывается исключение NullPointerException. Вы можете мне помочь?

private List<String[]> csvToList(String inputFile, String delimiter) {
		
		String line[];
		
		List<String[]> lines = new ArrayList<String[]>();
			
		try (BufferedReader br = new BufferedReader(new FileReader(inputFile))){
			
			// Gets the first row of the input (Header)
			line = br.readLine().split(delimiter);
			
			if (line.length > 0) lines.add(line);			
			
			while (line.length > 0) {
				line = br.readLine().split(",");	
				
				if (line.length > 0) lines.add(line);		
			}
			
			br.close();
			
		} catch(NullPointerException npe) {
			// Here is thrown a null pointer exception
		} catch(Exception ex) {
			ex.printStackTrace();
		}
		
		
		return lines;
	}

1 Ответ

0 голосов
/ 24 апреля 2020

В вашем случае NPE означает, что вы достигли конца файла - вам нужно проверить null при вызове br.readLine():

String singleLine;
while((singleLine = br.readLine()) != null) {
    line = singleLine.split(",");
    if (line.length > 0) {
        lines.add(line);
    }
}
...