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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

InputStream
OutputStream
InputStreamReader
OutputStreamWriter
FileReader
FileWriter
BufferedReader
BufferedWriter
LineNumberReader


这个太多了都不知道什么时候用什么 ,有什么区别和特点

3 个回复

倒序浏览
操作纯文本数据使用字符流,操作非文本数据使用字节流。
回复 使用道具 举报
InputStream  OutputStream仅仅读取和写入单个字节和字节数组 他们没有读取和写入字符串和数值的方法.
FileReader,FileWriter 是读字符的,1个字符是2个字节,16位
字符流主要读文本比较效率
字节流主要读二进制文件,图片,就是为了防止出现读取的单位放大,出现无法还原本程序的目的
InputStreamReader OutputStreamWriter  主要是字符流和字节流的转换类,通过它可以很容易的实现两者之间的互换。
BufferedReader  BufferedWriter 是缓冲区读写.   他就像用饮水机接水一样  接满了.一口喝干净
望采纳


评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
这个其实蛮好理解的。
首先你可以把io流分成两大类,字节流和字符流。
字节流通常以Stream结尾,字符流以reader或writer结尾。
趋于这两者之间的有一个转换流:InputStreamReader和OutputStreamWriter.转换流的最大特点就是可以指定一个具体字符编码。
比如以需要将控制台输入读出来。
控制台输入System.in返回的是一个inputStream。控制台肯定是文本输入,则相对应得就是操作文本的IO流。
即FileInputStreamReader fs = new FileInputStream(System.in);
需要指定字符编码
InputStreamReader isr = new InputStreamReader (fs,"gbk");转换流默认的编码就是gbk。
需要提高效率
BufferedReader br  = new BufferedReader(isr);


根据这个思路。在慢慢看下API,我想应该就清晰了。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

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