A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白倩 黑马帝   /  2011-10-28 14:56  /  2433 人查看  /  8 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

字符流和字节流是不是都可以操作纯文本文件?

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

8 个回复

正序浏览
李建雄 黑马帝 2011-10-30 22:59:44
9#
是的,字节流和字符流都可以操作纯文本文件,
字节流还可以操作其他文件,比如:图片,电影

如果是纯文本文件,一般选择字符流, 我想可以是因为它比字节流效率高,而且比较符合使用习惯
还有就是,先出现的是字节流,而字符流是出现在字节流的基础之上,字符流里面有编码表,它把字节转换成了字符,
从某种意义上说,字符流比字节流先进, 想一想:后出现的一般会比前出现的好!

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黄晓天 黑马帝 2011-10-30 22:54:39
8#
原则上字节流和字符流都可以处理文本文件,但是考虑到效率问题,处理文本文件一般用字符流,而当处理图片、视频等格式的文件时,进而选择字节流
回复 使用道具 举报
黄晓天 黑马帝 2011-10-30 22:51:28
7#
原则上字节流和字符流都可以处理文本文件,但是考虑到效率问题,处理文本文件一般用字符流,而当处理图片、视频等格式的文件时,进而选择字节流

评分

参与人数 1技术分 +1 收起 理由
admin + 1 和效率无关

查看全部评分

回复 使用道具 举报
都可以操作纯文本的,字节流与字符流主要的区别是他们的的处理方式
字节流是最基本的,所有的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等

评分

参与人数 1技术分 +2 收起 理由
admin + 2 赞一个!

查看全部评分

回复 使用道具 举报
绿影 黑马帝 2011-10-28 20:51:38
报纸
这个问题如同问高速路上能不能跑拖拉机,理论上当然可以。不过,基于效率上考虑现实上应该比较少干。除非特定用处。呵呵!

评分

参与人数 1技术分 +1 收起 理由
admin + 1 重在参与

查看全部评分

回复 使用道具 举报
都能,一般情况文本用字符流,其他的比如 音乐,图片用字节流。。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
郭敏 黑马帝 2011-10-28 15:18:06
藤椅
都可以操作,一般情况下都使用字符流读写纯文本,效率高!

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
黄健 黑马帝 2011-10-28 15:17:20
沙发
都可以操作存文本文件,只是读取的方式不同,字符流提供按字符读写的方法,字节流提供按字节读写的方法。其实字符流最终还是以字节来读写文本文件(因为计算机中的文件都是以二进制数存在的),平时处理文本文件的情况很多,为了方便使用,就提供了以字符形式读取的方法。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马