我是一名java初学者,希望学习如何以易于操作的方式读取文件和存储数据。
我有一个非常大的csv文件(18000行)。该数据代表了利口酒店出售的所有不同饮料的分拣。它由16个列组成,标题包括“商品编号,名称,生产商,酒量等等。列以”\ t“分隔。
我现在想在这个文件中进行一些搜索,以查找在瑞典生产了多少产品并找到最昂贵的利口酒/升。
因为我真的想学习如何编程,而不仅仅是找到答案,我不是在寻找任何确切的代码。相反,我正在寻找这背后的伪代码,以及在处理大量数据时最好的思考方式,以及哪种数据结构最适合任务。
让我们来看看“有多少产品来自瑞典”的例子。 由于数据由字符串,整数和浮点数组成,因此我无法将所有内容放入列表中。什么是存储它的最佳方式,以便以后可以操作?或者我可以在解析后立即找到它,也许我根本不需要存储它?
答案 0 :(得分:0)
您似乎正在寻找CSV文件中的内存中SQL引擎。我建议使用CQEngine,它使用类似SQL的查询在Java集合框架之上提供索引视图。
您基本上将Java集合视为数据库表。假设每个CSV行映射到某个POJO类,如Beverage
:
IndexedCollection<Beverage> table = new ConcurrentIndexedCollection<Beverage>();
table.addIndex(NavigableIndex.onAttribute(Beverage.BEVERAGE_ID));
table.add(new Beverage(...));
table.add(new Beverage(...));
table.add(new Beverage(...));
您现在需要做的是阅读CSV文件并将其加载到IndexedCollection
,然后在某些字段上构建正确的索引。之后,您可以将表作为通常的SQL数据库进行查询。最后,将集合反序列化为新的CSV文件(如果进行了任何修改)。
答案 1 :(得分:0)
如果您特别拥有csv文件,那么您可以使用数据库来存储此数据。 您将使用此link.
在java中阅读csv使用像Hibernate一样的ORM框架和Spring应用程序一起使用。使用此link创建应用程序
通过使用此功能,您可以创建查询以获取数据,例如&#34;有多少产品来自瑞典&#34;并使用Collection框架。这个link可以在同一个应用程序中使用HQL查询。
创建JSP页面以在UI上显示结果。
抱歉我的英文。
答案 2 :(得分:0)
如果您不熟悉Java和编程,我建议您使用库来帮助您查看和使用数据,而无需进入数据库和学习SQL。我过去使用的是Commons CSV。
https://commons.apache.org/proper/commons-csv/user-guide.html#Parsing_files
它可以让您轻松地将整个CSV文件解析为CSVRecord对象。例如:
certificat_pdf.php