社区
Web 开发
帖子详情
请问字符流和字节流有什么区别?
TiShen
2007-04-13 12:12:43
理论上的区别小弟已经看过书了,问题是书上过于理论,只是用术语讲解。
请各位高手回答小弟时用具体的实例,比如字符流在处理某些文件时占优势或者字节流根本就不能处理某些字符等等等等。
万分感谢!
...全文
1548
2
打赏
收藏
请问字符流和字节流有什么区别?
理论上的区别小弟已经看过书了,问题是书上过于理论,只是用术语讲解。 请各位高手回答小弟时用具体的实例,比如字符流在处理某些文件时占优势或者字节流根本就不能处理某些字符等等等等。 万分感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
YOYOOOP
2007-04-13
打赏
举报
回复
所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.
int i= 7 那么i为一个字符.在Java中用两个字节表示值为0x0007
______________________________________________________________________________________________
1.字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串;
2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。
______________________________________________________________________________________________
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化
这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联
在实际开发中出现的汉字问题实际上都是在字符流和字节流之间转化不统一而造成的
在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
如//把字符串按GB2312解码
hello = new String(hello.getBytes(), "GB2312");
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统的lang
而在字符流转化为字节流时,实际上是String转化为byte[]时,
byte[] String.getBytes(String charsetName)
如//把字符串按UTF8解码成字节流,并打印相应的字节
hello = new String(hello.getBytes("UTF8"));
也是一样的道理
至于java.io中还出现了许多其他的流,按主要是为了提高性能和使用方便,
如BufferedInputStream,PipedInputStream等
(转载)_
zhaochunhui
2007-04-13
打赏
举报
回复
字节流与字符流主要的区别是他们的的处理方式
字节流是最基本的,所有的InputStrem和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,它是按虚拟机的encode来处理,也就是要进行字符集的转化。在从字节流转化为字符流时,实际上就是byte[]转化为String时,
public String(byte bytes[], String charsetName)
有一个关键的参数字符集编码,通常我们都省略了,那系统就用操作系统默认的lang
【Java IO】那
字节流
和
字符流
有什么
区别
?
而如果使用缓存流,一次性从文件里读取多个字节到缓存中,可以减少系统调用同时也减少了磁盘读取,提高了读取的效率。所以
字符流
是一个很方便的流了,没有必要把一个方便的流转换成一个不方便的流。,涉及到用户空间和内核空间之间的上下文切换,这些切换是很昂贵的。从输入流读取下一个数据字节,值字节以0到255范围内的。好的面试官,Java IO有两个参与对象,一个是。,这个基类提供了3个方法可以来读取
字节流
。,同样是提供了3个方法来支持
字符流
读取。好的,有这些不同之处,主要是3个方面。是这样的,虽然
字节流
比
字符流
的。
java
字节流
与
字符流
的
区别
字节流
与和
字符流
的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上
字节流
在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而
字符流
在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。 下面以两个写文件的操作为主进行比较,但是在操作时
字节流
和
字符流
的操作完成之后都不关闭输出流。 范例:使用
字节流
不关闭执行 程序运行结果: 此时没有关闭
字节流
操作,但是...
字节流
与
字符流
区别
概述 流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出。流也具有一个“流动的方向”,通常可以从中读入一个字节序列的对象被称为输入流;能够向其写入一个字节序列的对象被称为输出流。 分类 ...
字节流
与
字符流
的
区别
一、两者的组成不同: 1、
字节流
的组成:
字节流
是由字节组成的。 2、
字符流
的组成:
字符流
是由字符组成的。 二、两者的处理不同: 1、
字节流
的处理:主要用在处理二进制数据,它是按字节来处理的但实际中很多的数据是文本。 2、
字符流
的处理:按虚拟机的encode来处理,也就是要进行字符集的转化。
字节流
是由字节组成的;
字符流
是由字符组成的 Java里字符由两个字节组成. 1字符=2字节 JAVA中的
字节流
是采用ASCII编码的,
字符流
是采用好似UTF编码,支持中文的
字节流
与
字符流
主要的
区别
是他们的的处理方式
JAVA
字节流
和
字符流
的
区别
之前在复习IO的时候,为了方便记忆,提到了以Stream结尾的为
字节流
,以Writer或者Reader结尾的为
字符流
。 除了在使用上的不一样,那究竟两者有什么
区别
呢。直接给出结论:
字节流
在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而
字符流
在操作时使用了缓冲区,通过缓冲区再操作文件。 测试方法:使用OutputStream和Writer分别对文本文件做写入,但是并不关闭、不刷新(flush)输出流,执行后看是否能成功写入。 OutputStream package com.leol..
Web 开发
81,111
社区成员
341,726
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章