基于多列排序csv文件

时间:2014-05-26 14:30:11

标签: java csv

我需要根据多个列对csv文件进行排序。 假设我的csv由15个字段组成,我必须在4列组合的基础上对它们进行排序。我需要按第2列排序我的文件,然后排在第3列,然后是第4列,再排在第1列。

如何使用Java实现这一目标?我可以使用任何开源库吗?

1 个答案:

答案 0 :(得分:0)

你绝对可以使用open CSV阅读csv,然后使用Collections.sort方法对其进行排序。您需要创建自己的比较器,但它可以很容易地进行测试。

真正的诀窍是:你的csv有多大?我描述的方法需要将所有内容存储在内存中,因此如果你的csv不是太大就可以工作。

这是CSV文件大小的问题,以字节为单位。 如果你的csv是大约40k行和15列,并提供你的数据 列长约100个字,它应代表40 * 1000行* 15列* 100(=我假设列平均每个字符大约100个字符)bytes = ~60MB in memory。

任何现代计算机/服务器都可以轻松处理。如果你的列中有很长的字符串,比如1000个字符串,它仍然可以工作。 现在,如果要排序的文件的大小显着增加,它将不再起作用。

如果要处理的文件超过500MB,您应该开始担心。