java io求教

请教,晚了一点,但是拼了。谢谢
向文件写入数字,恩,数字。结果打开文件是乱码。d:\pet 和 d:\pet.txt 都不行。
上码!
[code="java"]BufferedWriter bw =new BufferedWriter (new OutputStreamWriter(new FileOutputStream(path),"GB2312"));bw.write(random.nextInt());bw.flush();bw.close();[/code]

2个回答

见BufferWriter中的方法签名:
[quote]public void write(int c)
throws IOException写入单个字符。 [/quote]

注意是写入单个字符,也即是 你传入的random.nextInt(),是一个char的数值。也即是,你输入的ASCII字符的整型值。

解释一下:你write(0x31)时,其实你是写入了一个字符'0'。你write(0x65)的话,输出的其实是'e'.
[color=blue]
[b]
你可以这样使用:[/b][/color]
[code="java"]PrintWriter bw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(("src/a.txt")),"GB2312"));

// 注意:这里是print的方法
bw.print(random.nextInt());

bw.flush();
bw.close();[/code]

你这个br.Wirite(65)你改成65试一下,看文件能否输出A 如果是的话,就说明他是按照Ascii码进行转化的。你的int数是随机取得,那么万一你取得的这个int数转为Ascii码之后不属于中文的表示范围呢

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问