IO流之使用DataInputStream和DataOutputStream复制二进制文件

386 阅读2分钟

前言: 在IO流学习中,我们通常会碰到一些二进制文件的复制问题,例如一张图片,一段视频,也可能是我们的一个class字节码文件,他们都是典型的使用二进制编码实现的文件. 那么我们应该如何使用IO流知识解决二进制文件的复制问题呢? 答案是需要使DataOutputStream和DataInputStream实现类,下面介绍如何使用这两个类.

一、DataInputStream和DataOutputStream

DataInputStream和DataOutputStream是FilterOutputStream的子类,实现了DataOutput接口,他们分别有重要的构造方法 DataInputstream(inputStream in) 和DataOutputStream(outputStream out) ,这两个方法主要就是我们用于读取和输出二进制文件的.

二、实现步骤

1.需求内容 第一步,先判断目录是否存在,不存在就创建,然后就是构造InputStream和OutputStream的对象.

第二步,构造完对象后接着构造DataInputStream和DataOutputStream对象,构造过程中需要使用构造方法传入InputStream及OutputStream的对象.

第三步,构造字节数组用于存放读入的数据,长度我直接定义为文件大小的长度,因为byte数组的容量非常巨大,是以2的指数次幂大小的长度,普通文件完全够用.

第四步.使用DataInputstream和DataOutputStream的read()和write()方法,读入和写入数据

第五步,别忘记关闭掉打开的流.

文件复制成功后,就可以打开新文件了,看看你的图片是否能正常显示, 这里普及一个小知识,就是电脑文件的后缀名主要是为了方便系统辨认使用什么软件打开该文件,比如jpg文件就是用图片编辑器打开,txt文件就是用记事本打开.

代码如下(示例):

总结:

以上就是复制二进制文件的全部内容了,其实很简单,和其它类型文件的复制思路一样, 总之就是万变不离其宗,这里边就是要构造专门读取和写入文件的DataInputStream和DataOutputStream对象.至于其它二进制文件复制也和这个大同小异.

创作不易,有帮助的小伙伴帮忙点个赞,博主谢谢您,爱您咯!!