JavaSE--IO流总览03:复制照片案例,解决关闭流异常的方法

概述:本篇主要是讲述根据上一篇的知识完成一个小需求:图片的复制,以及关闭流的异常以及解决方法

一.照片的复制:

注意:字节流非常适合做一切文件的复制作 ,任何文件的底层都是字节 字节流做复制 是一字不漏的转移完全部字节 只要复制后的文件格式一致就没问题

需求:把一个目录下的照片复制到另一个目录下,通过代码形式

分析:复制文件 将一个文件夹的图片文件复制到另一个地址

 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接口

具体实例:

感谢各位大佬的观看,求免费的赞还有关注收藏鸭!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值