【发布时间】:2018-03-25 17:03:13
【问题描述】:
我试图跳过 .csv 文件的第一行,这是我的第一个 if 语句应该解决的问题,然后遍历 .csv 文件并创建新的 Call 对象并将它们添加到名为 callList 的数组中。它不会读取第一行,而是读取第一行,然后给我一个NullPointerException。任何想法?为什么会这样?
public static void parseCalls(String fileName) {
int firstRow = 1;
int counter = firstRow;
String line = "";
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
while ((line = br.readLine()) != null) {
if(counter == firstRow) { //should skip first row
br.readLine();
}
// use comma as separator
String[] splitCalls = line.split(",");
callList.add(new Call(splitCalls[6], splitCalls[9], splitCalls[25], splitCalls[17]));
counter++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
parseCalls("test.csv");
}
我的堆栈跟踪是:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at CallAnalyzer.parseCalls(CallAnalyzer.java:95)
at CallAnalyzer.main(CallAnalyzer.java:323)
当我调用parseCalls() 时,每个错误发生的位置。
【问题讨论】:
-
请拨打tour
-
为什么都是样板文件?
Files.lines(...).skip(1).map(line -> line.split(","))等
标签: java csv bufferedreader