我有以下两个要求:
我正在分析实现这个目标的多种方法:
想知道,是否已有行业定义的首选方式来执行此类任务?
我在stackoverflow上找到了一些链接,但我正在寻找更多选项:
我正在使用Java6进行实施。
答案 0 :(得分:0)
您应该使用NIO包在GB中执行此类操作。 NIO是异步的,迄今为止最快,最可靠。您可以通过NIO打包简单地读取块中的文件,然后使用批量命令而不是单个插入插入到db中。单次插入会占用大量CPU周期,并可能导致OOM错误。
答案 1 :(得分:0)
你可以使用RandomAccessFile来读取csv文件,它给你足够快的读取速度,它不需要任何额外的jar文件,这里是代码,
File f=new File(System.getProperty("user.home")+"/Desktop/CSVDOC1.csv");
RandomAccessFile ra = new RandomAccessFile(f,"rw");
ra.seek(0);//Read from start
long p=ra.getFilePointer();
String d= ra.readLine();
ra.seek(p);
while(d!=null){
//Each line data stored in variable d
d=ra.readLine();
//d="col1","col2","col2","col3"
//Separate line data by separator ","
//insert row values into database
}
//Release file lock
ra.close();
答案 2 :(得分:0)
我们正在使用Apache Camel"文件:"用于读取文件和处理数据的协议。