如何跳过csv文件中的一些空行并继续读取包含数据的行?

时间:2016-05-04 10:53:45

标签: java bufferedreader

我使用缓冲区读取器从.csv文件中读取数据,.csv文件的某些行是空的,我想跳过这些行并从具有数据的行中读取数据。

2 个答案:

答案 0 :(得分:1)

您可以在阅读csv文件时使用正则表达式,如此

BufferedReader reader = new BufferedReader(new FileReader(new File("csv.csv")));

        String currentLine;
        while((currentLine = reader.readLine()) != null){
            if(currentLine.matches("(\\d+)(,\\s*\\d+)*")){
                doWhateverYouWant(currentLine);
            }else{
                System.out.println(String.format("Invalid line: %s", currentLine));
            }
        }

编辑:如果您使用的是JDK8,这种方法更简单

reader.lines().filter(line -> line.matches("(\\d+)(,\\s*\\d+)*"))

输入(注意第2行和第4行之间的空白行)

1,2,3,4
1,2,3,4

1,2,3,4

显示以下输出

1,2,3,4
1,2,3,4
Invalid line: 
1,2,3,4

答案 1 :(得分:0)

要忽略空白行,请添加此检查以确保该行包含以下内容:

while ((line = reader.readLine()) != null) {
if(line.length() > 0) {
  //do lots of stuff to sort the data into lists etc
}           
}