结果 使用 java 设置为文本文件



我用这段代码将ResultSet写入文本文件。

FileWriter fstream = new FileWriter(new File("work/data/NewFile.txt"));   
BufferedWriter out = new BufferedWriter(fstream); 
 while(rs1.next()){
    String td_status=rs1.getString("td_status");
    int count=rs1.getInt("count(1)");
    System.out.println(td_status + "t" +count );       
    out.write(rs1.getString("td_status"));   
    out.write(rs1.getInt("count(1)")); 
    out.newLine();              
}        
out.close();

在文本文件中,它写为

成功?按范围免除 0.1-0.0001 规则 由小于 0.0001 规则豁免

但实际的结果集是

成功 153

按范围豁免 0.1-0.0001 规则 2

豁免小于0.0001 规则 3

请问你能帮我得到这个吗?

问题不在于 ResultSet,而在于 FileWriter 的使用。

您正在调用 FileWriter.write(int(,它继承自 OutputStreamWriter.write(int(。 此方法写出一个字符,而不是一个数字。 调用 out.write(153) 会将字符 153 写入输出。 它不写字符串"153",这就是我想你想要的。

写出字符的方法有一个int参数似乎很奇怪。 我不知道原因 - 也许是为了与读取单个字符的 Reader.read() 方法对称,将其作为int返回,但 -1 指定文件结束。 这与 System.out.println(int) 有些不一致,后者确实打印出一个整数,而且,正如您所发现的,也不直观。

替换行

    out.write(rs1.getInt("count(1)"));

    out.write(Integer.toString(rs1.getInt("count(1)")));

并对传递int参数的任何其他out.write调用进行任何类似的更改。

编辑:如果要插入换行符,请插入一行,例如

    out.write(System.getProperty("line.separator"));

或者,将 FileWriter 包装在 BufferedWriter 中,并使用 newLine(( 方法。

相关内容

  • 没有找到相关文章

最新更新