输入字节流:
-------------| InputStream 此抽象类是表示字节输入流的所有类的超类。
------------------| FileInputStream 从文件系统中的某个文件中获得输入字节。
------------------| BufferedInputStream 缓冲输入字节流,缓冲输入字节流的出现主要是为了提高读取文件数据的效率。
其实BufferedInputStream类内部只不过维护了一个8kb的字节数组而已。
注意:凡是缓冲流都不具备读写文件的能力。
BufferedInputStream本身不具备读写文件的能力,所以需要借助FileInputStream来读取文件的数据。
使用BufferedInputStream的步骤:
1.找到目标文件。
2.建立数据的输入通道。
3.建立缓冲输入字节流。
4.关闭资源。
package com.cn.buffered;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* Author:Liu Zhiyong(QQ:1012421396)
* Version:Version_1
* Date:2016年7月26日16:03:38
* Desc:
输入字节流:
-------------| InputStream 此抽象类是表示字节输入流的所有类的超类。
------------------| FileInputStream 从文件系统中的某个文件中获得输入字节。
------------------| BufferedInputStream 缓冲输入字节流,缓冲输入字节流的出现主要是为了提高读取文件数据的效率。
其实BufferedInputStream类内部只不过维护了一个8kb的字节数组而已。
注意:凡是缓冲流都不具备读写文件的能力。
BufferedInputStream本身不具备读写文件的能力,所以需要借助FileInputStream来读取文件的数据。
使用BufferedInputStream的步骤:
1.找到目标文件。
2.建立数据的输入通道。
3.建立缓冲输入字节流。
4.关闭资源。
*/
public class Demo1 {
public static void main(String[] args) throws IOException {
readTest();
}
public static void readTest() throws IOException{
//1.找到目标文件。
File file = new File("f:/a.txt");
//建立数据的输入通道
FileInputStream fileInputStream = new FileInputStream(file);
//建立缓冲输入字节流
//BufferedInputStream本身不具备读写文件的能力,所以需要借助FileInputStream来读取文件的数据。
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
//读取数据
int content = 0;
while((content = bufferedInputStream.read()) != -1){
System.out.print((char)content);
}
//关闭资源
// fileInputStream.close();//这里就不需要关
//只需要关bufferedInputStream就可以了,BufferedInputStream的close()方法实际上关闭的是FileInputStream。
bufferedInputStream.close();
}
}
BufferedInputStream读取数据效率高的原因: