使用java创建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

首先,我从另一个系统的数据库中选择数据,然后存储在resultset中,然后我想用这个resultset数据创建一个csv文件

大约121mb的数据(300k条记录),用3小时制作包含相应数据的csv文件。 我的密码是:-

//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写入,然后通读结果集。这可能需要相同的时间。