java io流中的字节流和字符流有什么区别,该如何去选择使用哪一个?
3个回答
展开全部
一句话概括:字节流是由字节组成的,字符流是由字符组成的.Java里字符由两个字节组成.
扩展:字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化
补充:实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。
扩展:字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化
补充:实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件。
展开全部
字节流通常直接跟设备打交道。例如“文件”
“网络”等等
字符流跟逻辑打交道。跟设备无关。例如:我想留种中输出一行“你好”
而这个你好通常跟设备无关。我只关心我的逻辑的正确性。而到底“你好”
被“流”送到哪里。就跟字符流《包装》的字节流相关。
“网络”等等
字符流跟逻辑打交道。跟设备无关。例如:我想留种中输出一行“你好”
而这个你好通常跟设备无关。我只关心我的逻辑的正确性。而到底“你好”
被“流”送到哪里。就跟字符流《包装》的字节流相关。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实就是字节与字符的区别。file****stream不能正确的将字节转换为字符。
你不需要纠结原因,这是java
1.0的io设计问题。在java编程思想这本书里面有解释。
你只需要记住一点:读取的时候用filereader去读。
纯手打,请采纳。
你不需要纠结原因,这是java
1.0的io设计问题。在java编程思想这本书里面有解释。
你只需要记住一点:读取的时候用filereader去读。
纯手打,请采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询