谁能解释一下java io里的字节流和字符流究竟有什么具体的区别
谢谢了
------解决方案--------------------上百度搜一下
字节流--处理单元为1个字节,操作字节和字节数组。所有的InputStrem和OutputStream的子类都是。
字符流--处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串
通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联
在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的
区别就看出来,就是处理数据的方式。
关系:可以互相转换一下,比如:byte[] <--> String
这儿还有个帖子:http://topic.csdn.net/t/20020424/18/673519.html
顺便么自己也学一下,呵呵
------解决方案--------------------字符流也是有n个字节组成的,可以说字符流也是字节流。从本质上说,流本身没有字符流和字节流的区别。一个流里边的字节可能是一系列的unicode字符,也可能是utf-8字符,也可能是gbk或gb2312字符,也可能不是字符,而是4个一组的整数。。。可以说直到读取或写入流的时候才涉及到数据的格式问题。
------解决方案--------------------学习
------解决方案--------------------byte和char的区别,用字节流时采用二进制的编码直接传输,用字符流则牵涉到本地系统的编码问题,java io中的部分api会根据操作系统或者jvm的参数配置自行进行字符流转换,这样会简化部分的编程过程,但如果是在网络通讯中,强烈建议使用byte字节流方式,减少程序因编码转换造成的种种问题
------解决方案--------------------String提供了getBytes()方法,研究下这个方法看看jdk的解释,其实就可以搞定楼主说的这个问题了.很简单的.
------解决方案--------------------可以把流比喻成自来水管~
管里的东东就是流
可以流水.
可以流煤气...
字节流就是已字节为单位.你一开自来水龙头.流出来的是一个一个的字节...
而字符流则是一个一个的字符...
PS:其实他们的物理结构都一样(字节组成).就像水和煤气都是由原子构成一样
------解决方案--------------------要处理汉字的话最好用字符流 而普通的英文字母啊 就用字节流就行了
这是本人的感觉,也没有太多的认识