gpt4 book ai didi

java - 使用回调将字符串附加到文件

转载 作者:行者123 更新时间:2023-12-02 11:59:28 25 4
gpt4 key购买 nike

我正在从数据库中读取数据,并希望使用回调从数据库中附加每行数据。我已经设法让回调工作,但我不知道如何让它将数据附加到文件中。这是我的代码。

主要

public class Main {

public static void main(String[] args) {

FileIO fileIO = new FileIO();
fileIO.writeRStoFile();
}
}

文件IO

public class FileIO implements DBAccess.CallBack {

public void writeRStoFile() {

DBAccess dbAccess = new DBAccess(this);

String fileName = "/result.csv";

try (FileWriter fw = new FileWriter(fileName)) {

System.out.println("Starting data download from DB...");
dbAccess.readDB();

// HERE I LIKE TO APPEND EACH ROW TO THE FILE
fw.append('\n');

System.out.println("Finished data download from DB...");

} catch (IOException e) {
e.printStackTrace();
}
}

@Override
public void iAmDone(String row) {
System.out.println("Row: " + row);
}
}

数据库访问

public class DBAccess {

public interface CallBack {
public void iAmDone(String row);
}

private final CallBack callBack;

public DBAccess(CallBack callBack) {
this.callBack = callBack;
}

public void readDB() {

String url = "jdbc:Cobol:////Dev/Project Files/DatAndCpyFiles";

try (Connection con = DriverManager.getConnection(url, "", "");
Statement stmt = con.createStatement())
{
stmt.setFetchSize(10);

Class.forName("com.hxtt.sql.cobol.CobolDriver").newInstance();

String sql = "select * from PROFS";

ResultSet rs = stmt.executeQuery(sql);

ResultSetMetaData resultSetMetaData = rs.getMetaData();
int iNumCols = resultSetMetaData.getColumnCount();
for (int i = 1; i <= iNumCols; i++) {
callBack.iAmDone(resultSetMetaData.getColumnLabel(i) + ";");
}

String field;

while (rs.next()) {
String row = "";
for (int i = 1; i <= iNumCols; i++) {

field = rs.getString(i);

field = field.trim() + ";";

row = row + field;
}
callBack.iAmDone(row);
}

rs.close();

} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}

我不确定如何将 iAmDone() 中的数据获取到 writeRStoFile() 方法中。我能够将数据打印到控制台。

最佳答案

我能想到的一种方法是将fw声明为FileIO中的成员变量。这样您就可以在 iAmDone 中调用 fw.append(...)。 (那么您可能必须更改 try-with-resources。)

关于java - 使用回调将字符串附加到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47371153/

25 4 0
文章推荐: asp.net - MVC+ Razor : how to add starting
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com