【问题标题】:Loading csv files加载 csv 文件
【发布时间】:2014-01-19 10:49:42
【问题描述】:

我必须在 NetBeans 中创建一个程序,将 4 个 .csv 文件加载到表中,并让您像管理一个简单的数据库一样管理它们。但我不完全确定如何开始。例如,我如何通过 jFileChooser 打开文件,以便我什至可以开始对它们进行操作?目前我所做的一切都是文本格式的,所以我需要一些帮助。

【问题讨论】:

    标签: java csv load filechooser


    【解决方案1】:

    我建议你看看 Spring 批处理模块。你需要的是批量处理文件

    春季批次包含以下内容

    1. 项目阅读器:Spring 支持 csvFileReader,它将逐行读取 csv 文件的内容
    2. 项目处理器:阅读器读取的行将被发送到处理器,以防我们需要对读取的行执行任何业务逻辑。如果我们直接想将这些行保存到 DB,我们可以跳过处理器
    3. Item Writer:用于将读取的行写入 DB。您可以使用 hibernate item writer 或 jdbc item writer 来实现相同的目的。

    您可以在这里查看:Spring Batch docs

    【讨论】:

      【解决方案2】:

      把你的问题分解成更简单的部分:

      1) 打开一个文本文件。

      2) 逐行读取文本文件的内容。

      3) 将文本文件的行解析为 CSV 数据。

      请注意,如果 CSV 的“行”包含嵌入在数据中的换行符,则步骤 2) 将更加复杂。最好从一个简单的 CSV 文件开始,其中一行 CSV 等于文件的一行。

      您应该已经能够做到 1) 和 2)。实施 3) 并不难,但您需要非常仔细地考虑问题。从简单数据(没有嵌入的逗号引号)开始,并确保在继续使用嵌入引号、逗号和可能的换行符的更复杂数据之前,您的数据正常工作。

      简单:“你好”、3、“123”、“世界!”

      复数:"Hello, World!", 3,, "123", "He said, \"Hello, World!\""

      【讨论】:

        【解决方案3】:

        您可以使用 QuickOCM 之类的工具。它非常易于使用。只需创建一个相当于 CSV 文件中的一行的类。它将读取文件,转换为对象列表。现在您可以轻松地对这个对象做任何事情,使用 ORM 保存到 DB 甚至普通 JDBC。

        您可以在此处查看使用情况:http://mkhanal.github.io/quickocm/

            Input : InputStream
            Output : Calls a handler per line in CSV.
            Identifies data types like String, BigDecimal, int, etc.
        

        行家:

            groupId = io.github.mkhanal
            artifactId = quickocm
            version = 1.0
        

        【讨论】:

          猜你喜欢
          • 2016-07-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-23
          • 1970-01-01
          • 2015-09-22
          • 2021-05-07
          相关资源
          最近更新 更多