如何在Java中加入2个csv文件

时间:2010-11-02 20:02:07

标签: java sql database csv

我希望能够将2个csv文件作为输入,在特定列上加入它们(SQL样式),并输出包含所有file1数据的新csv文件,以及file2中的一列数据。

有关实现此目标的最佳方法的任何提示将是?由于SQL提供了join命令,因此将csv文件视为数据库的一些方法可能会运行良好,但我对所有建议都持开放态度 - 最简单的胜利。

非常感谢所有帮助!

6 个答案:

答案 0 :(得分:0)

执行一些简单的文件IO,拆分每一行并将其加载到Set类型容器中。然后,您可以对两个文件的内容进行设置类型操作:

http://www.java2s.com/Code/Java/Collections-Data-Structure/Setoperationsunionintersectiondifferencesymmetricdifferenceissubsetissuperset.htm

答案 1 :(得分:0)

您可以解析CSV文件并使用opencsv将它们绑定到Bean: http://opencsv.sourceforge.net/ 在这里,您可以将CSV中的实体绑定到Bean列表: http://opencsv.sourceforge.net/#javabean-integration

然后,您可以通过程序化方式将Bean视为您想要的,例如相互追加列表,或类似连接的逻辑等。

答案 2 :(得分:0)

一种非常简单的非编程方法:将两个文本文件导入电子表格,然后使用vlookup(或其等价物)从一个工作表中查找值到另一个工作表。

答案 3 :(得分:0)

对于直接操作CSV文件的SQL表,请参阅: Reading a CSV file into Java as a DB table

答案 4 :(得分:0)

您也可以尝试将JDBC驱动程序用于以下CSV文件: http://sourceforge.net/projects/csvjdbc/

答案 5 :(得分:0)

我编写了一个命令行程序来对csv文件执行任意SQL,包括多文件连接,称为gcsvsql。你可以在这里阅读:

http://bayesianconspiracy.blogspot.com/2010/03/gcsvsql.html

此处有一个Google Code项目:http://code.google.com/p/gcsvsql/

它是用Java / Groovy编写的,可以在Java可用的任何地方运行。