使用java创建csv文件太慢或花费太多时间
首先,我从另一个系统的数据库中选择数据,然后存储在resultset中,然后我想用这个resultset数据创建一个csv文件 大约121mb的数据(300k条记录),用3小时制作包含相应数据的csv文件。 我的密码是:-使用java创建csv文件太慢或花费太多时间,java,csv,jboss,Java,Csv,Jboss,首先,我从另一个系统的数据库中选择数据,然后存储在resultset中,然后我想用这个resultset数据创建一个csv文件 大约121mb的数据(300k条记录),用3小时制作包含相应数据的csv文件。 我的密码是:- //connection for fetching the required data conn=ConnInfoBrkr.newConnection(dbDriver, dbUrl, dbUser, dbPassword); stmt=conn.createStatemen
//connection for fetching the required data
conn=ConnInfoBrkr.newConnection(dbDriver, dbUrl, dbUser, dbPassword);
stmt=conn.createStatement();
rs=stmt.executeQuery(sqlSelect);
colCount=rs.getMetaData().getColumnCount();
fileWriter = new FileWriter(dumpFileDirectory);
bwOutFile = new BufferedWriter(fileWriter);
while(rs.next()){
for(int j=1; j<=colCount; ++j) {
bwOutFile.append(fieldEncloser);
bwOutFile.append(rs.getString(j)); //data column
bwOutFile.append(fieldEncloser);
if(j<colCount){
bwOutFile.append(fieldSeparator); //comma
}
}
// seperated the new row by newline
bwOutFile.append(lineSeparator);
bwOutFile.flush();
}
bwOutFile.close();
rs.close();
stmt.close();
conn.close();
fileWriter.close();
//获取所需数据的连接
conn=connfobrkr.newConnection(dbDriver、dbUrl、dbUser、dbPassword);
stmt=conn.createStatement();
rs=stmt.executeQuery(sqlSelect);
colCount=rs.getMetaData().getColumnCount();
fileWriter=newfilewriter(dumpFileDirectory);
bwOutFile=新的缓冲写入程序(fileWriter);
while(rs.next()){
对于(int j=1;j缓慢的部分可能是查询本身,而不是CSV文件的实际写入。@Thilo:-不,兄弟,查询只需要15秒。然后开始创建文件。我直接在生成文件的文件夹中看到。它开始并在该文件中每秒添加15 KB的数据。对于121mb,需要3小时才能完成。不太可能。注释掉所有CSV写入,然后通读结果集。这可能需要相同的时间。