java - 用java读取具有多个字段的文件

标签 java mysql

我有一个 10,000(txt 文件)记录文件需要加载到 MySQL DB 中。我打算编写一个Java程序来读取文件并写入数据库。

关于文件:

该文件有 30 个不同字段类型的字段,例如:String、int、double、char..

目前,我计划将文件读入字符串数组并提取数据。下面给出的示例代码..(假设字符串是一行中的记录)

public class Read {
    public static void main(String[] args){
        String s ="Bob&&01-01-1980&&20&&CA";
        String[] a1= s.split("&&");
        System.out.println(a1[0]);
        String name = a1[0];
        String dob = a1[1];
        String age = a1[2];
        String state = a1[3];
        System.out.println(name + " " + dob + " " + age +" " + state);
    }
}

是否有更好的方法从包含 30-40 个字段的文件中提取数据?

最佳答案

我觉得你的方法很好。对于 10k 行,您可能需要每一百行左右执行一次 COMMIT。如果您要导入到 MyISAM 表,则无需担心这一点。

如果我正在做这个项目,我会使用 MS Excel(我碰巧有)或 Open Office 的电子表格程序将文本文件导入到电子表格中。然后,我会检查电子表格以确保一切都干净,然后将其导出为 .csv 文件。最后,我会使用mysqlimport将 csv 文件加载到 MySQL 的实用程序。该过程可能比定制的 Java 程序更可靠地处理各种语法边缘情况。

另一方面,如果这是每周一次的加载作业,那么 Java 程序将是最佳选择。

(当然 && 是一个合法的分隔符。mysqlimport 将其称为 fields_termerated_by 。)

关于java - 用java读取具有多个字段的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25714246/

相关文章:

java - DataSource 和 ByteArrayDataSource 不兼容?

Java 8 Streams - 对元组流进行分组

java - 是否可以将 JWT 身份验证添加到硬编码的前端用户名和密码身份验证中?

php - 在 cakephp 中显示带有法语口音的数据

mysql - 使用mysql根据前一行在记录集中设置修改标志

java - 如何从 hibernate 中的存储过程中获取输出值(SQL SERVER)

java - 如何将包含List的Java Map转换为Scala Map

mysql - 我应该对这三个连接的表使用外键吗?

php - SQL 编码问题 (Â)

MySQL:加入 3 个表并按其中一个进行过滤