Can someone please help here, i am trying to save the console output into a text file, i am getting NullPointerException error. Please suggest what wrong i am doing here.Also is there a way to create a new text file for each run?
Thanks in advance:
import java.io.*;
import java.sql.*;
public class RetrieveFile {
public static void main(String args[]) throws Exception {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@tkdp2gpsdbc03-vip.hk.hsbc:35120/GPSEAU_TAF", "gppeareadu", "F4nt4na");
PreparedStatement ps = con.prepareStatement("select * from MSG_FEES where MID='1961108001406E00'");
ResultSet rs = ps.executeQuery();
try {
printResultColumns(rs);
} catch (SQLException e) {
System.err.println(e.getMessage());
}
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void printResultColumns(ResultSet resultSet) throws SQLException, IOException {
ResultSetMetaData rsmd = resultSet.getMetaData();
int columnCount = rsmd.getColumnCount();
while (resultSet.next()) {
// you get a single result row in here, not the entire ResultSet
for (int i = 1; i <= columnCount; i++) {
switch (rsmd.getColumnType(i)) {
case Types.VARCHAR:
case Types.LONGVARCHAR:
case Types.CHAR:
System.out.println(resultSet.getString(i));
break;
case Types.DOUBLE:
System.out.println(resultSet.getDouble(i));
break;
case Types.INTEGER:
System.out.println(resultSet.getInt(i));
break;
case Types.DATE:
System.out.println(resultSet.getDate(i).toString());
break;
case Types.TIMESTAMP:
System.out.println(resultSet.getTimestamp(i).toString());
break;
case Types.BOOLEAN:
System.out.println(resultSet.getBoolean(i));
break;
case Types.DECIMAL:
case Types.NUMERIC:
System.out.println(resultSet.getBigDecimal(i));
break;
default:
//System.out.println(rsmd.getColumnClassName(i)
}
}
}
StringBuilder record = new StringBuilder();
while (resultSet.next()) {
if (record.length() > 0) record.append("\n");
for (int i=1; i < columnCount; ++i) {
if (i > 1) record.append(", ");
record.append(resultSet.getInt(i));
}
}
try {
String filename = "C:\\Users\\45060849\\Desktop\\test1.txt";
BufferedWriter writer = new BufferedWriter(new FileWriter(filename));
char[] str = null;
writer.write(str);
writer.close();
}
catch (IOException e) {
// handle exception
}
} }
Please find the below Log file for above code:- Please find the below Log file for above code:-
java.lang.NullPointerException
at java.io.Writer.write(Writer.java:127)
at RetrieveFile.printResultColumns(RetrieveFile.java:76)
at RetrieveFile.main(RetrieveFile.java:14)
Picked up JAVA_TOOL_OPTIONS: -Duser.home=C:\Users\123