2
我正在嘗試讀取完整的文本csv文件;然而,如果在中間的空行的地方,這件事休息,我得到一個:讀取文本文件並跳過空行直到到達EOF
java.lang.RuntimeException: java.lang.StringIndexOutOfBoundsException
我怎麼會去刪除/忽略空行,只要它不是在文件的結尾?
file = new FileReader(fileName);
@SuppressWarnings("resource")
BufferedReader reader = new BufferedReader(file);
while ((line = reader.readLine()) != null) {
//do lots of stuff to sort the data into lists etc
}
} catch (Exception e) {
System.out.println("INPUT DATA WAS NOT FOUND, PLEASE PLACE FILE HERE: " + System.getProperty("user.dir"));
throw new RuntimeException(e);
} finally {
if (file != null) {
try {
file.close();
} catch (IOException e) {
// Ignore issues during closing
}
}
}
其實你應該做的'如果( line.trim()。length()> 0)'捕獲可能有空白的空行。 – Jared
乾杯,這是一個非常簡單的修復! – Ofek
@Jared取決於你如何定義'空白'。如果'空白'行有非終止空白字符,那麼是的,你會想要應用'trim()'。如果空行只有行終止字符,'reader.readLine()'將返回一個空字符串。 – lreeder