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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高光天 中级黑马   /  2015-3-20 08:04  /  1431 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

字符流操作起来多方便

7 个回复

倒序浏览
字符流、字节流答题
-----------------------
操作方便不方便要看操作对象啊。字符流处理文本文件那是爽爽的,可是你让它处理图片文件或着视频音频文件试试,直接完蛋。下面一起来理清下字符流和字节流几个小概念。

背景知识:
        所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符,而是先把字符编码成字节,再储存这些字节到磁盘(木办法啊,谁让存储器只能识别0和1啊)。在读取文件时,也是一个字节一个字节地读取以形成字节序列。

字符流和字节流是io流按其操作特点的不同分的两大类,两者都有自己的输入、输出流。
字节流:InputStream、OutputStream;
字符流:Reader、Writer。

字符流和字节流的操作原理区别:
        字符流处理的单元为2个字节的Unicode字符,其底层仍然是字节流。
        字节流处理单元为1个字节。字节流是最基本的,可以转换为字符流。

操作对象不同:
        字符流:字符、字符数组或字符串。实际应用中用来操作纯文本文件,读取速度快。
        字节流:可用处理于任何类型的对象,如音频、视频、图片等。速度慢。
回复 使用道具 举报
Mr.南郭 发表于 2015-3-20 09:06
字符流、字节流答题
-----------------------
操作方便不方便要看操作对象啊。字符流处理文本文件那是爽爽 ...

懂了,谢谢
回复 使用道具 举报
我好想还是怎么不明白的样子。。
回复 使用道具 举报
   字符流
在程序中一个字符等于两个字节,Java为我们提供了Reader和Writer两个专门操作字符流的类

  
  
  
1)        字符输出流:Writer
Writer是一个字符流,它是一个抽象类,所以要使用它,也必须通过其子类来实例化它后才能使用它。
Writer类的常用方法
方法名称
描述
public abstract void close() throws IOException
关闭输出流
public void write(String str) throws IOException
将字符串输出
public void write(char cbuf) throws IOException
将字符数组输出
public abstract void flush() throws IOException
强制性清空缓存
   字符输入流:Reader
Reader本身也是一个抽象类,同样,如果使用它,我们需要通过其子类来实例化它才可以使用它。
回复 使用道具 举报
  我也不太懂
回复 使用道具 举报
Mr.南郭 发表于 2015-3-20 09:06
字符流、字节流答题
-----------------------
操作方便不方便要看操作对象啊。字符流处理文本文件那是爽爽 ...

补充:字符流也可以转化为字节流
回复 使用道具 举报
夜班心桥 发表于 2015-3-20 23:41
补充:字符流也可以转化为字节流

可以是可以,但一般没这么用的,字符流比字节流高效,能用字符流操作的不会再转成字节流来处理的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马