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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

正在自学IO,求高手详细点解释一下

2 个回复

正序浏览
至尊幽蓝 发表于 2015-11-1 21:34
这两个类都是Reader类,都是按字符读取。FileReader的构造方法只有一个要求——告诉它要指向的文件源 ...

谢谢,受教
回复 使用道具 举报
     这两个类都是Reader类,都是按字符读取。FileReader的构造方法只有一个要求——告诉它要指向的文件源(以File类型或String类型文件路径提供),BufferedReader是给Reader对象包装缓冲区,其构造方法要求Reader类对象,当然FileReader类也可以(BufferedReader(new FileReader(String fileName))。
     BufferedReader和BufferedInputStream一样都是包装了缓冲区,有了缓冲区后再调用读取方法时就是先将流中的数据读入缓冲区再从缓冲区进行读取,而不是直接从流中读取。打个比方,北方的你提出想吃一根香蕉的要求,别人从南方运回一车香蕉然后给了你一根,下次你再要时他就直接从车上拿,而不是为了你的第二根再去趟南方,毕竟去一趟不容易,等车上的拿完了再去运;你要读取一个字符,缓冲流从缓冲区给你一个,每次都去硬盘读挺麻烦的;同时字符缓冲流还提供了一个方法String readLine()。
      BufferedWriter和BufferedOutputStream也是包装了缓冲区,写入流的数据先写入缓冲区,待调用flush()时再将缓冲区里的数据写入流,非Buffered流也有flush方法,但是非Buffered流的写入方法并不等待调用flush()方法就会将数据直接写入流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马