import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Scanner;/*从键盘接受多个int型的整数,直到用户输入end结束, 要求:把所有的整数按倒序写到D:\\number.txt中,(要求使用缓冲流)*/public class test03 { public static void main(String[] args) throws IOException { BufferedWriter bw = new BufferedWriter(new FileWriter("number.txt")); ArrayList<Integer> arry = new ArrayList<Integer>(); Scanner sc = new Scanner(System.in); while (true) { System.out.println("请输入你的数字"); int a = sc.nextInt(); arry.add(a); System.out.println("你要结束就按end,不然随便按~"); String c = sc.next(); if (c.equals("end")) { break; } } for (int a1 = arry.size(); a1 > 0; a1--) { Integer b = arry.get(a1 - 1); bw.write(b); bw.newLine(); bw.flush(); } bw.close(); }}题目在上面有写了,但是程序运行后我输入数字后在文档那里只看到框框里有个问号,请问是为什么,我自己输出了下数字也都是写入集合里面了,但为什么就是写不进去。但是如果在写入的b里面加入to.String又可以写入了,为什么一定要改为字符串?不能是数字吗。
1 回答
已采纳

onemoo
TA贡献883条经验 获得超454个赞
Writer 是处理字符流的。
它的 write method 当参数是 int 时,会把这个整形值当作是字符编码来输出这个字符! 所以并不会把这个整形值格式化为字符串再输出。
而 write method 也可以接受 String 参数,这会把这个字符串输出。 所以用 toString method 将 b 的整形值转为字符串后就可以了。
添加回答
举报
0/150
提交
取消