没有抛出任何错误。如果我指定确切的路径,它将起作用,但如果我只说“output.csv”
则不行ResultSet rs = statement.executeQuery("select * from geninfo");
try {
CSVWriter writer = new CSVWriter(new FileWriter(new File("output.csv")));
writer.writeAll(rs, true);
writer.flush();
writer.close();
} catch (IOException ex) {
Logger.getLogger(SQLite.class.getName()).log(Level.SEVERE, null, ex);
}
答案 0 :(得分:5)
如果你只是说output.csv它应该写入工作目录,这通常是你从Java启动的目录,但这可能会有所不同,具体取决于你是否从IDE开始。
你可以通过以下方式检查它正在使用的实际文件:
new File("output.csv").getAbsolutePath()
答案 1 :(得分:0)
这是一个完整的解决方案:执行查询然后将结果集发送到输出csv文件。
import java.sql.*;
import java.io.IOException;
import java.io.FileWriter;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import au.com.bytecode.opencsv.CSVWriter;
public class TableExport {
public static void main(String[] args) {
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","name","password");
conn.setAutoCommit(false);
Statement statement = conn.createStatement();
ResultSet resultData = statement.executeQuery("select * from your_table");
CSVWriter writer = new CSVWriter(new FileWriter(new File("D:/Uploads/Output5.csv")), '|');
writer.writeAll(resultData, true);
writer.close();
}catch (Exception e){
System.out.println("Error" +e);
}
}
}
如果你喜欢这个代码,请给我评论,或者它有助于你的目的......