gpt4 book ai didi

java - 如何处理txt文件中的空格/制表符

转载 作者:行者123 更新时间:2023-11-29 05:42:09 25 4
gpt4 key购买 nike

我正在制作一个程序,我将从 mysql 表中的 txt 文件加载数据。我将创建具有特定字段的表,然后我将从其中的 txt 文件加载数据。我正在使用 java 来执行该程序。

我写的是下面的内容:

private static String importData(Connection con, File txtFile,
String tablename) {

try {
Statement stmt;

stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String path = txtFile.getAbsolutePath();
String importingdata = "LOAD DATA INFILE '"
+ path.replace('\\', '/')
+ "' INTO TABLE " + tablename
+ " FIELDS TERMINATED BY '\t'";
System.out.println("fill the table");
stmt.executeUpdate(importingdata);

} catch (Exception e) {
System.out.println(((SQLException) e).getSQLState());
System.out.println(e.getMessage());
e.printStackTrace();

}
return null;
}

但在这段代码中,如您所见,我说过字段以制表符结束。如果文本文件中的列由未知数量的空格和制表符分隔怎么办?

例如图片中显示的文字:

enter image description here

第一列与第二列由一个制表符和 3 个空格分隔,第二列与第三列由 2 个空格分隔。我所有的文本文件都有特定的字段,但它们之间的分隔空格是未知的。有没有办法读取所有这些空间,直到找到包含数据的下一列?

最佳答案

有很多方法可以做到这一点。一种是一次读取文件一行,然后使用 String.split(regex) 将行拆分为字段;例如

    String line = ...
String fields[] = line.split("\\s+");

然后重写 SQL 以便一次可以插入一行。

或者更好的是,使用批处理;例如如此处所述:http://viralpatel.net/blogs/batch-insert-in-java-jdbc/

关于java - 如何处理txt文件中的空格/制表符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com