gpt4 book ai didi

java - 如何将控制台输出存储到文本文件中,并且每次运行都应创建一个新的文本文件

转载 作者:行者123 更新时间:2023-12-02 09:39:51 26 4
gpt4 key购买 nike

任何人都可以建议/帮助如何将此代码输出存储在文本文件中,它应该在每次运行中创建一个新的文本文件并存储在指定的路径中。感谢您的帮助和支持:

   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("123.23.32.12:8080/orcl", "test", "****");

PreparedStatement ps = con.prepareStatement("select * from MSG where MID='1234'");
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, FileNotFoundException {
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)
//System.out.println(rsmd.getColumnType(i));
String data = String.valueOf(i);


FileOutputStream fos = new FileOutputStream("C:\\Ppp\\pp.txt");

fos.write(data.getBytes());
fos.close();


}
}
}
}
}

控制台输出:- 无效的 1961108001406E00 第389章 我们的 现在 美元 0 0 FR1 FRHBFR222954760001 美元 0 无效的 0

提前致谢。根据评论更新

最佳答案

直接写入文件,而不是在控制台上打印使用FileOutputStream代替System.out.println

如果您不确定要打印的数据类型是字符串还是非字符串,请使用方法String.valueOf(arg)将任何数据类型转换为字符串

如果文件已经存在,这也会覆盖该文件。

      // 'arg' can be of any datatype it can be int, boolean, float, double etc..
String data = String.valueOf(arg);

String str = "hello";
FileOutputStream fos = new FileOutputStream("log.txt");

fos.write(str.getBytes());
fos.close();

在使用命令行运行 Java 类文件时键入此内容。只是为了好玩

java -cp . RetrieveFils > hello.file

希望这能解决问题。

关于java - 如何将控制台输出存储到文本文件中,并且每次运行都应创建一个新的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57184027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com