Please help me on the below code as i want to write the values from the resultset to a txt file
Code
while (rs.next()){
FileWriter fstream = new FileWriter(file);
BufferedWriter out = new BufferedWriter(fstream);
out.write(Integer.toString(rs.getInt("SBL_PRODUCT_ID")) + ", ");
out.write(Integer.toString(rs.getInt("SBL_TARIFF_ID")) + ", ");
out.write(rs.getString("PRODUCT_DESCRIPTION") + ", ");
out.write(rs.getString("SERVICE_TYPE") + ", ");
out.write(Integer.toString(rs.getInt("MARKET_CLASS")) + ", ");
out.write(rs.getString("ENTITY_TYPE") + ", ");
out.newLine();
/*out.write(System.getProperty("line.separator"));*/
System.out.println("Completed writing into text file");
out.close();
}
Required Output in the txt file
4087, 98, POSTE SIM, Deal [SoHo Flat Tariff Recurring Charge, Prepaid], /service/telco/SIM, 101, DEAL
4087, 99, POSTE SIM, Deal [SoHo Flat Tariff Recurring Charge, Prepaid], /service/telco/SIM, 101, DEAL
4087, 100, POSTE SIM, Deal [SoHo Flat Tariff Recurring Charge, Prepaid], /service/telco/SIM, 101, DEAL
4087, 101, POSTE SIM, Deal [SoHo Flat Tariff Recurring Charge, Prepaid], /service/telco/SIM, 101, DEAL
Current output which i am getting is only one line that too the last value from the resultset ie below
Current output
4087, 101, POSTE SIM, Deal [SoHo Flat Tariff Recurring Charge, Prepaid], /service/telco/SIM, 101, DEAL
Kindly help me on this :(
Every time you create a file writer you're overwriting the file. Change it to:
FileWriter fstream = new FileWriter(file);
BufferedWriter out = new BufferedWriter(fstream);
while (rs.next()) {
out.write(Integer.toString(rs.getInt("SBL_PRODUCT_ID")) + ", ");
out.write(Integer.toString(rs.getInt("SBL_TARIFF_ID")) + ", ");
out.write(rs.getString("PRODUCT_DESCRIPTION") + ", ");
out.write(rs.getString("SERVICE_TYPE") + ", ");
out.write(Integer.toString(rs.getInt("MARKET_CLASS")) + ", ");
out.write(rs.getString("ENTITY_TYPE") + ", ");
out.newLine();
/*out.write(System.getProperty("line.separator"));*/
}
System.out.println("Completed writing into text file");
out.close();
Alternatively, you could had set the append
flag in your FileWriter
:
FileWriter fstream = new FileWriter(file, true);
although this is not as efficient as opening the file just once.