猿问

有个IO流怎么也写不进去文件,麻烦各位大神帮忙看看是为什么。

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又可以写入了,为什么一定要改为字符串?不能是数字吗。

慕容9145150
浏览 996回答 1
1回答

onemoo

Writer 是处理字符流的。它的 write method 当参数是 int 时,会把这个整形值当作是字符编码来输出这个字符!  所以并不会把这个整形值格式化为字符串再输出。而 write method 也可以接受 String 参数,这会把这个字符串输出。  所以用 toString method 将 b 的整形值转为字符串后就可以了。
随时随地看视频慕课网APP

相关分类

Java
我要回答