【问题标题】:What is csv file and how to parse it using java code? [duplicate]什么是 csv 文件以及如何使用 java 代码解析它? [复制]
【发布时间】:2011-11-06 23:44:02
【问题描述】:

可能的重复:
Fast CSV parsing
How to properly parse CSV file to 2d Array?

我对 java 文件处理非常陌生。请问,谁能告诉我什么是“CSV 文件格式”以及如何解析这种类型的文件?

我想从 CSV 文件中输入员工数据并将其保存在哈希图中。

【问题讨论】:

标签: java csv


【解决方案1】:

CSV 代表逗号分隔值。

这里的数据是这样存储的:

ID,Name,Age
20,"abcd xyz",33
30,asdf,28

OpenCSV 是一个很好的解析 CSV 文件的库。

CSV 还有其他表亲,例如 TSV(制表符分隔值)和 PSV(管道分隔值)。下面的链接应该给你一个良好的开端:

http://en.wikipedia.org/wiki/Delimiter-separated_values

【讨论】:

  • 嗨,我需要通过我的程序进行解析...有什么建议吗???
  • 阅读opencsv.sourceforge.net 给出的代码sn-ps。它们是不言自明的。
【解决方案2】:

我也喜欢CSVReader 库。该网站包含代码示例。

【讨论】:

    【解决方案3】:

    CSV - 逗号分隔值。数据使用逗号分隔符分隔。 例如。 1,"约翰逊","软件工程师"

    代码:

    Public static void main (String args[])
    {
    try{
    
    String fileName= "D:\\sample.csv";
    
            File file = new File(fileName);
    
            BufferedReader bufRdr = new BufferedReader(new FileReader(file));
            String line = null;
    
    
            ArrayList arraylist=new ArrayList();
    
            // Read each line of text in the file
            while((line = bufRdr.readLine()) != null) 
        {
        String[] data=line.split(",");      
        HashMap hm=new HashMap();
        hm("employeeID",data[0]);
        hm("employeeName",data[1]);
        hm("employeeDesignation",data[2]);
        arraylist.add(hm);
        }
    
    }catch(Exception e){}
    
    }
    

    【讨论】:

    • 如果数据中包含逗号,这将不起作用。所以“johnson”可以作为一个名字,但“Johnson, Mike”不能。
    • 它还包括存储在HashMap 中的值中的引号。我的建议是不要使用 splitScanner 或字符串 bashing 解析 CSV。使用(或编写)适当的 CSV 解析器。
    猜你喜欢
    • 2020-11-29
    • 2014-03-30
    • 2015-09-05
    • 2013-08-04
    • 2016-07-11
    • 2011-10-21
    • 2012-05-30
    • 2013-03-23
    • 1970-01-01
    相关资源
    最近更新 更多