BufferedInputStream 缓冲输入字节流 -------上
2015-08-05 00:11
447 查看
package com.BufferedInputStreamUse; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; /* 我们清楚读取文件数据使用缓冲数组读取效率更高,sun也知道使用缓冲数组读取效率更高,那么 这时候sun给我们提供了一个------缓冲输入字节流对象,让我们可以更高效率读取文件。 输入字节流体系: ----| InputStream 输入字节流的基类。 抽象 ----------| FileInputStream 读取文件数据的输入字节流 ----------| BufferedInputStream 缓冲输入字节流 缓冲输入字节流的出现主要是为了提高读取文件数据的效率。 其实该类内部只不过是维护了一个8kb的字节数组而已。 注意: 凡是缓冲流都不具备读写文件的能力。 使用BufferedInputStream的步骤 : 1. 找到目标文件。 2. 建立数据 的输入通道 3. 建立缓冲 输入字节流流 4. 关闭资源 */ /** * BufferedInputStream 缓冲输入字节流 * @author Administrator * */ //读取文件的时候我们都是使用缓冲数组读取。效率会更加高 class Reader{ public static void readTest(){ //找到目標文件 File file = new File("D://aa.txt"); //建立数据之间的通信 BufferedInputStream bufferedInputStream = null; try { FileInputStream fileInputStream = new FileInputStream(file); bufferedInputStream = new BufferedInputStream(fileInputStream); int length = 0; /* //这种方法无法解释汉子 while((length = bufferedInputStream.read())!=-1){ System.out.print((char)length); }*/ byte[] bs = new byte[1024*8]; //疑问二:BufferedInputStream出现 的目的是了提高读取文件的效率,但是BufferedInputStream的read方法每次读取一个字节的数据 //而FileInputStreram每次也是读取一个字节的数据,那么BufferedInputStream效率高从何而来? while((length = bufferedInputStream.read(bs))!=-1){ String str = new String(bs,0,length); System.out.println(str); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); }finally{ if(bufferedInputStream != null){ try { //调用BufferedInputStream的close方法实际上关闭的是FileinputStream. bufferedInputStream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } } public class BufferedInputStreamTest { public static void main(String[] args) { // TODO Auto-generated method stub Reader reader = new Reader(); reader.readTest(); } }
相关文章推荐
- 解决jQuery uploadify在非IE核心浏览器下无法上传
- JavaScript实现删除,移动和复制文件的方法
- js如何实现点击标签文字,文字在文本框出现
- JavaScript使用FileSystemObject对象写入文本文件内容的方法
- coffeescript使用的方式汇总
- 使用coffeescript编写node.js项目的方法汇总
- JavaScript节点及列表操作实例小结
- jquery实现实时改变网页字体大小、字体背景色和颜色的方法
- JS+CSS实现表格高亮的方法
- javascript禁止访客复制网页内容的实现代码
- JavaScript实现节点的删除与序号重建实例
- JavaScript计算某一天是星期几的方法
- JS实现生成会变大变小的圆环实例
- JS版元素周期表实现方法
- JavaScript实现自动消除按钮功能的方法
- js绘制圆形和矩形的方法
- JS使用parseInt解析数字实现求和的方法
- js点击列表文字对应该行显示背景颜色的实现代码
- JS模拟键盘打字效果的方法
- 将页面table内容与样式另存成excel文件的方法