使用java将jdbc结果集设置为文本文件
我用这段代码将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
根据lessthan 0.0001规则3豁免
你能帮我弄到这个吗
# 1 楼答案
问题不在于结果集,而在于FileWriter的使用
您正在呼叫FileWriter。write(int),它是从OutputStreamWriter.write(int)继承的。这个方法写出一个字符,而不是一个数字。调用
out.write(153)
将字符153写入输出。它不写字符串"153"
,我想这就是你想要的一个写出字符的方法有一个
int
参数,这似乎很奇怪。我不知道为什么,也许是因为Reader.read()
方法的对称性,该方法读取单个字符,将其作为int
返回,但使用-1指定文件结尾。这与System.out.println(int)
有些不一致,后者确实打印出一个整数,而且正如您所发现的,它也是非直观的更换线路
与
并对传递
int
参数的out.write
的任何其他调用进行任何类似的更改编辑:如果要插入换行符,请插入一行,例如
或者,将FileWriter包装在BufferedWriter中,并使用其newLine()方法