概述:本篇主要是讲述根据上一篇的知识完成一个小需求:图片的复制,以及关闭流的异常以及解决方法
一.照片的复制:
注意:字节流非常适合做一切文件的复制作 ,任何文件的底层都是字节 字节流做复制 是一字不漏的转移完全部字节 只要复制后的文件格式一致就没问题
需求:把一个目录下的照片复制到另一个目录下,通过代码形式
分析:复制文件 将一个文件夹的图片文件复制到另一个地址
D:\testpja\mother 图片地址
复制到地址: D:\testpja\sun
分析 D盘------》内存----- D盘---主要是先读取数据再将读取的内容进行写入新的地址,不过要注意文件的格式
第一步:创建输入输出流的通道
第二步:
创建字节数组进行读取数据,以及传输数据下面代码有疑惑的可以传送看下:http://t.csdnimg.cn/kgdQX
这里的意思就是:创建一个1024kb的字节数组,把图片的数据读取到字节数组,再写入字节数组内读取到的数据到目标文件.
最后:关闭流:
二.关于流的异常处理方法
开启流时会占用内存,所有每次用完过后都要关闭流,释放内存资源。一般在最后关闭流,
但是假如流在运行时发生异常,跑不到最后就不会释放流。比如上面的例子:
当这个时候流关闭不了该怎么办呢?-------两种解决方法:try-catch-finaly ,try-with-resource
1.try-catch-finaly---就算上面发生异常,也要执行finaly里的代码,除开虚拟机被终止
finaly代码区的特点:无论try中的程序是正常执行还是出现异常 最后都要执行finaly区 除非 JVM(虚机)终结
作用:一般用于在程序执行完进行资源释放操作-------专业级做法
普通实例:
注意:千万不要再finaly区返回数据 会覆盖前面的
关流操作:
2.try-with-resource--该资源使用完毕后 会自动调用close方法 完成对资源的释放---常用释放流的写法
格式:try(定义资源变量1,资源变量2,,,,){可能出现异常的代码}catch(异常类名 变量名){异常的处理代码} 该资源使用完毕后 会自动调用close方法 完成对资源的释放
资源变量是什么呢?---资源都会实现AutoCloseable接口
具体实例:
感谢各位大佬的观看,求免费的赞还有关注收藏鸭!!