1

我有一个包含 5 列的 csv 文件。我想获取第二列中的值与用户输入匹配的行。

我尝试在 csv 中读取一行。使用 csv 分隔符创建一个数组,然后检查数组中的第二个值。

有没有更好的方法。

4

2 回答 2

0

参考以下代码:

String fName = "C:\\Amit\\abc.csv";
    String input="5";
    String thisLine;
    FileInputStream fis = new FileInputStream(fName);
    DataInputStream myInput = new DataInputStream(fis);

    while ((thisLine = myInput.readLine()) != null) {
        String strar[] = thisLine.split(",");
            if(input.equalsIgnoreCase(strar[1])){
                System.out.println("Found row :"+thisLine);
            }
        }
于 2012-06-18T12:36:25.993 回答
0

CSV 格式通常使用固定的列或行位置来处理。如果不能保证固定的行和列位置,那么您可以查看处理标题以确定行的位置。

作为一般规则,使用专门构建的 CSV 解析器会简单得多,特别是如果您不控制正在使用的 CSV 文件的数据或输出格式,因为 CSV 格式有一系列潜在的极端情况(例如,数据字段中的逗号)无法正确处理String#split()。两个经常提到的用于解析 CSV 文件的开源 Java 库是SuperCSVOpenCSV。OpenCSV 可以处理将带有标头的 CSV 文件解析为 Java bean 对象。SuperCSV 可以处理该功能并将带有标题的 CSV 文件解析为映射。

可以找到针对这个问题这个问题这个问题列出的其他 CSV 库。

于 2012-06-18T12:53:08.543 回答