学习内容-IO流:
简介:
I/O类库中使用“流”这个抽象概念。Java对设备中数据的操作是通过流的方式。
IO流用来处理设备之间的数据传输。设备是指硬盘、内存、键盘录入、网络等。
Java用于操作流的对象都在IO包中。使用IO流需要导包如:import java.io.*;
作用:
IO流是用来操作文件的,对文件的内容进行读和写。
具体代码
字节流与字符流区别:
在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。
程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。
字节流与字符流操作流程基本一样
1.用File打开一个文件
2.创建流
3.通过流读取内容
4.关闭流
区别
字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的。(并不是说字节流不会用到缓冲区,字节流也可以用缓冲字节流)
字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容。
什么是缓冲区?
你可以自己定义一个字节或字符数组,作为缓冲区,这样可以提升文件读写效率。
而缓冲流内部封装了一个字节数组,默认长度为8192,也能够较大程度的提高读写效率,是对字节数组进行操作。一般小文件不用缓冲区,因为看不到性能的明显提升,大文件的流操作用缓冲区效果显著。