比如我用FileOutputStream的成员方法write(int a)往一个记事本写入11,12,13,14,用FileReader也能读出12.13.14.15。我是这样认为的,FileOutputStream是字节流,存入数字的时候取低八位的一个字节存入,而FileReader读取的是一个字符,即两个字节的位置输出。请问大家我这样的理解有错吗?为什么还能输出12.13.14.15呢?
解决方案 »
- 有没有谁用java做过打印方面的东西
- 删除文件尾部的空白字符,用RandomAccessFile实现.
- java软件怎么运行?
- 求 Thinking in java 3 答案
- ?请问!!就目前来说,各位JAVA在做那方面的项目??
- 论坛终于架起来了!大家提提意见!来的都有分!
- 异常捕捉不到,请指教!
- 中文问题:utf-8编码转成GBK,因为位数不同而产生字符丢掉问题!!
- 散分:HelloWorld程序终于出来了,好辛苦!附带三个问题。
- 如何用JBuilder做corba程序
- 请教A udioFileFormat 能指定MP3 类型的吗? 怎么指定?
- IO流关闭,报错Stream closed 帮我看看逻辑上有什么错误
public void write(int c) throws IOException {
char cbuf[] = new char[1];
cbuf[0] = (char) c;
write(cbuf, 0, 1);
}
强转成char再写入的,最终只不过是把c这个字节转成char
不知道是楼主理解错了还是表达错了,write(int a)这个参数表示的是一个字节数不是整数
ISO字符集下,每个字符1个字节
GBK字符集,中文字符2个字节
UTF-8,中文字符3字节,英文字符1字节
UTF-16,所有字符都是2字节所以FileWriter到底会写几个字节,这没有一定的啊,你发现它写了一个字节,不过是凑巧而已。你把int值放大一些,比如0x7530,可能就会发现不同.