日期:2014-05-20  浏览次数:21246 次

急!java读取超大txt文件并入库
要求:读取一个大小约1G的txt文本,文本内容大概有一千三百多万行,每行有7个值用逗号隔开,7个值对应oralce表中字段,要求将这个txt中内容读写入库。我自己的做法是将每一行用逗号分割后放入list,然后取list中的值,最后再用insert语句,但是每次执行几万条或者几十万条后eclipse就不输出内容也不报错就那样一直没反应,拜托大家给看看,有什么更快速更简洁的方法吗?在线等。。。

------解决方案--------------------
最好用数据库的load数据的方式导入,如果非要用程序,那么按行读取,读一行插入一行,或者读100行、1000行就插入,而不是每次执行几万或者几十万...........
------解决方案--------------------
Java code

String sql = "insert into table values (?, ?, ?, ?, ?, ?, ?)";
PreparedStatement ps = prepareStatement(sql);

while(readline) {
    String line = "1, 2, 3, 4, 5, 6, 7";
    String[] s = line.split(", ");

    for(int i = 0; i < s.length; i++) {
        ps.setString(i + 1, s[i]);
    }

    ps.addBatch();
}

ps.execute();

------解决方案--------------------
探讨
Java code

String sql = "insert into table values (?, ?, ?, ?, ?, ?, ?)";
PreparedStatement ps = prepareStatement(sql);

while(readline) {
String line = "1, 2, 3, 4, 5, 6, 7";
String[] ……