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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

是不是如果读文件都用字符流  读图片读MAP这些都用字节流啊

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

5 个回复

倒序浏览
字符流应用场景:操作如文本等这类字符数据的时候使用字符流

字节流应用场景:操作如图片、电影等这类二进制数据的时候使用字节流,字节流也可以操作字符流操作的数据,但是不方便。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
     明确操作的文件的类型,确定操作的文件是文本类型,使用字符流
     明确了文件不是文本类型,使用字节流
     如果确定不了,操作的文件,到底是什么类型,使用字节流

另外,再写点具体使用的类:
     明确操作的数据源是文本类型,Reader
     明确操作的数据目的是文本类型 Writer
     需要提高效率吗?  数组缓冲 ,BufferedReader BufferedWriter

     明确操作的数据源是非文本类型 InputStream
     明确操作的数据目的是非文本类型 OutputStream
      需要提高效率吗? 字节数组缓冲

     数据源,数据目的,都不明确,选择InputStream OutputStream


     如果数据源(目的)是非文本类型,但是源中的数据,都是文本类型,考虑使用转换流

     可以将源,进行字符的操作,按行读和写,方便于开发者操作

     但是,如果数据也是非文本类型,不能考虑使用转换流。转换流本身,就是字符流
     不能直接操作字节数据

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是 音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点.
      所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.
       字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串; 2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节, 操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是 音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点.
     所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.
      字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串; 2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。
例如txt、exel文件可以用字符流
针对视频文件、图片文件等实用字节流

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
需要用到字符操作的就用字符流,对二进制文件进行操作的就用字节流,因为字符涉及字符编码的问题。不同的平台编码实现可能不一样所以对字符的操作要用字符流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马