1

没有抛出任何错误。如果我指定确切的路径,它会起作用,但如果我只是说“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);
                }
4

2 回答 2

5

如果您只是说 output.csv,它应该写入工作目录,这通常是您启动 Java 的目录,但这可能会因您是否从 IDE 启动而有所不同。

您可以通过以下方式检查它正在使用的实际文件:

new File("output.csv").getAbsolutePath()
于 2013-07-02T17:36:37.870 回答
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);
   }

  }
}

如果您喜欢此代码或它有助于您的目的,请给我评论......

于 2015-04-14T17:54:12.243 回答