一个偶然的机会,
一个高手问了我一个问题:java的io有什么特点。
一个简短的回答:字节流和字符流。
一个疑问:不懂,什么是字节流和字符流呢?
一点点茫然:不知如何回答,欲言又止,究竟是我回答错误还是高手有更好的理解?各位,有空能否给我一个满意的回答呢?
一个高手问了我一个问题:java的io有什么特点。
一个简短的回答:字节流和字符流。
一个疑问:不懂,什么是字节流和字符流呢?
一点点茫然:不知如何回答,欲言又止,究竟是我回答错误还是高手有更好的理解?各位,有空能否给我一个满意的回答呢?
楼主截止到2008-06-20 15:21:15的汇总数据:
注册日期:2003-12-20
上次登录:2008-6-20
发帖数:2 发帖分:200
结贴数:0 结贴分:0
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化
这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联
在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang
而在字符流转化为字节流时,实际上是String转化为byte[]时,
byte[] String.getBytes(String charsetName)
也是一样的道理至于java.io中还出现了许多其他的流,按主要是为了提高性能和使用方便,
如BufferedInputStream,PipedInputStream等
你应该有Java的基础书籍吧,
上面也有详细说明,
自己多看看,多写点儿代码,
以后就会自己慢慢明白的。
闲在的时候到网上搜些资料,
慢慢学吧。
因为字节流可以很容易的转化为指定编码的字符流,
比如一个汉字用UTF-8编码占用了3个字节。
GBK编码则只需要2个字节。
比如对话框里要输入yes or no 那么你输Y时,程序读到的是Y还是Y的码?