如何解析CSV(逗号分隔文件)和显示输出

时间:2014-02-08 23:55:02

标签: java arrays csv

有谁知道如何创建一个将通过逗号分隔文件(CSV)并组织该信息并随后将其放入数据库的应用程序?例如,我必须查看一个如下所示的文件:

Name of Athlete, Birthday, Salary($)
John Morris, 9/25/1991, 5000000 
Mike Hawk, 2/2/1988, 1000000
Dewayne Johnson, 11/22/1985, 4000000

我如何组织这些信息并进行设置?我试图这样做,所以我可以要求用户输入。例如:让用户输入“a”表示工资额并输出所有赚到这笔钱的玩家。

玩家1名,玩家1生日玩家2名,玩家2岁生日

感谢任何帮助。我很感激阅读信息和存储/检索它的帮助。

不要给我完整的答案。我是一名学生,我想了解它。

3 个答案:

答案 0 :(得分:1)

我会考虑这些步骤:

  • 创建一个类以与CSV中的数据进行映射。例如,Athlete类包含属性namebirthdaysalary(由您自定义每种数据类型)。
  • 阅读CSV文件。您可以使用ScannerBufferedReader(使用FileReader)来完成此操作。
  • 读取的每一行:
    • 通过逗号(,)
    • 将字符串拆分为多个字符串
    • 创建一个新的Athlete对象,并将每个字符串解析为一个属性,将其设置为对象。
    • 将新Athlete存储在集合(List或其他内容)中。
  • 完成加载一些Athlete后,将它们保存到数据库中。
  • 重复此操作,直到您完成阅读csv。

答案 1 :(得分:1)

用逗号分割是一种处理CSV的天真方式。除非您100%确定在实际字段中永远不会有逗号,否则请执行此路由,但如果您遇到类似hello, my name is devshorts的字符串,则应使用CSV库。 http://opencsv.sourceforge.net/似乎是个不错的选择。

完成后,将每个条目映射到表示行所在的类。制作一个Atheltes课程,其中包含NameBirthdateSalary的字段。

您可以使用与sqlite / mysql /任何数据库的直接JDBC连接,并将值(使用原始SQL)插入名为Atheletes的表中。如果你想使用ORM,请使用hibernate,但这可能比你需要设置更多的工作。

答案 2 :(得分:0)

读取此类文件的一种简单方法是使用BufferedReader,它允许您逐行读取文件。

然后使用split函数通过分隔符分隔字符串并将其转换为数组。

使用生成的数组,您可以将数据插入数据库,根据需要进行正确的转换。