我正在制作一个程序,我将从 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;
}
但是在这段代码中,正如你所看到的,我说过这些字段是由制表符终止的。如果文本文件中的列被空格和制表符分隔,数量未知怎么办?
例如图像中显示的文本:
第一列与第二列由一个制表符和 3 个空格分隔,第二列与第三列由 2 个空格分隔。我所有的文本文件都有特定的字段,但它们之间的分隔空格是未知的。有没有办法读取所有这些空间,直到找到包含数据的下一列?