IO流:
判断使用输出流还是输入流:
以当前程序作为参照物观察数据流向,如果需要数据流入当前程序则使用输入流,如果需要数据流出当前程序则使用输出流。
按照处理的单位可划分为:
字节流:字节流获取的是文件的二进制数据,读取到的二进制数据不会做任何处理。
字符流:字符流也是读取文件中的二进制数据,不过会把这些二进制数据转换成我们能识别的字符。
输入字节流:
InputSream 所有输入字节流的基类 是个抽象类
|——FileInputStream 读取文件数据的输入流
|——BufferInputStream 缓冲输入字符流 (不推荐使用 其内部只不过维护了一个8kb的字节数组,没有读取文件的能力需要传入FileInputStream对象)
使用FileInputStream读取数据的步骤:
1.找到目标文件
File file=new File(“f:\\a.txt”);
2.建立数据的输入通道
FileInputStream fileInputStream=new FileInputStream(file);
3.读取文件中的数据
注:这里我们使用缓冲数组读取,效率高!!
int length=0;用来接收读到的字节数
byte[] buf=new byte[1024]; 用来存贮读到的数据
注:数组容量一般为1024的倍数,这与计算机的处理单位有关
while((length=fileInputStream.read(buf))!=-1){
注:使用FileInputStream类中的read方法读取,读到的
内容都放在buf数组中,并返回读取到字节数;若读到了末
尾则返回-1表示。可通过操作buf数组来实现相应的操作。
}
4.关闭资源(关闭通道即可)
fileInputStream.close();
注:资源在使用完毕后应马上释放,否则其他的程序无法对该资源文件进行其他的操作。
注:在使用缓冲数组时每一次读取采用覆盖原数组内容的方式存储。因此需要用length变量来记录每次读到的字节数。
下一节输出字节流
每天学习一点点 未来爱你多一点