私は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;
}
しかし、ご覧のとおり、このコードでは、フィールドがタブで終了していると述べています。テキスト ファイルの列がスペースとタブの両方で区切られていて、それらの数が不明な場合はどうなりますか?
たとえば、画像に表示されているテキスト:
最初の列は 2 番目の列と 1 つのタブと 3 つのスペースで区切られており、2 番目の列と 3 番目の列は 2 つのスペースで区切られています。すべてのテキスト ファイルには特定のフィールドがありますが、それらの間のスペースが不明です。データを含む次の列が見つかるまで、これらすべてのスペースを読み取る方法はありますか?