【问题标题】:Java to validate csv file with incomplete rowsJava 验证具有不完整行的 csv 文件
【发布时间】:2016-06-06 08:55:34
【问题描述】:

我们的 java 应用程序将 csv 文件读入内存,但在读取文件之前,我们想验证 csv 文件并在文件包含不完整行(即最后一行的列不完整)时抛出错误

【问题讨论】:

  • 你必须阅读文件来验证它。
  • 为什么不一边阅读一边验证?
  • 我可以。检查不完整行的任何推荐方法?
  • 您需要一些 csv 阅读器才能正确检查。我推荐 apache commons-csv 库。 commons.apache.org/proper/commons-csv

标签: java file java-io


【解决方案1】:

CSV 字段由“;”分隔或者 ',' 。只需读取文件,使用此字符拆分行并计算预期字段编号

String SEPARATOR = ";";
int EXPECTED = 4;
BufferedReader reader = new BufferedReader(new FileReader(file));

String line = null;
while ((line = reader.readLine()) != null){
    String fields[] = line.split(SEPARATOR);
    if (fields.length != EXPECTED){
        //doSomething with the error
    } else {
        //line ok. Process it
    }   
}

【讨论】:

  • 如果转义正确,CSV 可以有多行值,我建议使用一些 CSV 库
  • @enfany 注意 ';'也可以在“abcd; efg”之类的字段中显示为一个值。这段代码是一个简单的例子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多