Taking a too long time to write the data in the CSV file in java. Here I am writing the data into the CSV file. 100,000 records it takes 1hr 10 minutes to write into a csv file. But query takes 2 minutes to fetch 100,000 record.
try {
writer = new BufferedWriter(new FileWriter(csvFilename));
con = DriverManager.getConnection("url", "Username", "pwd");
stmt = con.createStatement();
try {
rs = stmt.executeQuery(SQL);
} catch (SQLException er) {
logger.info(" SQL error {}" + er);
}
while(rs.next()) {
//Here splitting the data into 1000 records for each file
String line = Objects.toString(rs.getString(1),"") + "," + Objects.toString(rs.getString(2),"") + "," + rs.getString(3) + "," + Objects.toString(rs.getString(4),"");
writer.write(line);
writer.newLine();
success.incrementAndGet();
while(success.get()>1000) {
writer.close();
File f = new File("/Users/xxx/Documents/Deployments/"+filecount+"CSVTaskFileUnion.csv");
writer = new BufferedWriter(new FileWriter(f));
filecount.incrementAndGet();
success.set(0);
}
}
}
catch (Exception e)
{
logger.info("exception : {}" , e.getMessage());
}
finally
{
if(rs!=null)
rs.close();
if(con!=null)
con.close();
writer.flush();
writer.close();
}