字节流
开发工具与关键技术:eclipse java
作者:梁峻豪
撰写时间:2021.5.18
字节输出流 OutputStream
OutputStream 此抽象类,是表示输出字节流的所有类的超类。
操作的数据都是字节,定义了输出字节流的基本共性功能方法。
输出流中定义都是写 write 方法。
FileOutputStream 类
OutputStream 有很多子类,其中子类 FileOutputStream 可用来写入数据到文件。
FileOutputStream 类,即文件输出流,是用于将数据写入 File 的输出流。
FileOutputStream 类写入数据到文件中-构造方法
字节输入流 InputStream
如何把数据读到内存中,我们通过 InputStream 可以实现。
InputStream 此抽象类,是表示字节输入流的所有类的超类。定义了字节输入流的基本共性功能方法。
int read():读取一个字节并返回,没有字节返回-1.
int read(byte[]): 读取一定量的字节数,并存储到字节数组中,返回读取到的字节数。
FileInputStream 类
InputStream 有很多子类,其中子类 FileInputStream 可用来读取文件内容。
FileInputStream 从文件系统中的某个文件中获得输入字节。
读取数据 read(byte[])方法
在读取文件中的数据时,调用 read 方法,每次只能读取一个,太麻烦了,
于是我们可以定义数组作为临时的存储容器,这时可以调用重载的 read 方法,
一次可以读取多个字符。
复制文件
原理;读取一个已有的数据,并将这些读到的数据写入到另一个文件中。
上述代码输入流和输出流之间是通过 ch 这个变量进行数据交换的。
上述复制文件有个问题,每次都从源文件读取一个,然后在写到指定文件,
接着再读取一个字符,然后再写一个,一直这样下去。效率极低。
缓冲数组方式复制文件
上述代码复制文件效率太低了,并且频繁的从文件读数据,和写数据,
能不能一次多把文件中多个数据都读进内容中,然后在一次写出去,
这样的速度一定会比前面代码速度快。