try catch finally 关闭流标准的写法】的更多相关文章

平常开发中,都知道要在finlly里关闭流,但是有时finlly里代码不当,会引起另外的异常. 以下是看struts2源代码看到的,随手记录下. 有两点注意: (1)判断流是否为空. (2)filly里要捕获异常 InputStream in = null; try { in = settingsUrl.openStream(); settings.load(in); } catch (IOException e) { throw new StrutsException("Could not l…
public static void copyFile2(String path1, String path2) { Reader reader = null; Writer writer = null; try { // 打开流 reader = new FileReader(path1); writer = new FileWriter(path2); // 进行拷贝 int ch = -1; char [] arr=new char[1024]; while ((ch = reader.r…
关闭流的方式 所有的流,无论是输入流还是输出流,使用完毕之后,都应该关闭. 如果不关闭,会产生对资源占用的浪费. 当量比较大的时候,会影响到业务的正常开展. 步骤 1 : 在try中关闭 在try的作用域里关闭文件输入流,在前面的示例中都是使用这种方式,这样做有一个弊端: 如果文件不存在,或者读取的时候出现问题而抛出异常,那么就不会执行这一行关闭流的代码,存在巨大的资源占用隐患. 不推荐使用 package stream; import java.io.File; import java.io.…
前言 开发中,我们常常需要在最后进行一些资源的关闭.比如读写文件流等,常见的,我们会在最后的finally里进行资源的关闭.但是这种写法是很不简洁的.其实,早在JDK1.7就已经引入了try-with-resources来关闭资源的方式,我们今天就来体验一下try-with-resources的简洁之处. 原创声明 本文首发于头条号[Happyjava].Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的个人博客:(…
MSSQL 标准PROC 写法 ALTER PROC [dbo].[usp_ADM_InsertFlowSortInfo]@FlowSortName NVARCHAR(50),AS/*PAGE: 分类信息维护页    Action: 添加分类信息 CreatedBy: wangpengCreatedDate: 20100906ModifiedHistory: Test Scripts: */ BEGIN SET NOCOUNT ON  BEGIN TRY   BEGIN TRAN   --tod…
因为工作中经常会写点接口类需求,写完HTTP的接口后,就要写测试类来调下服务端的代码.最近写新的测试调用代码时候,发现项目中new DefaultHttpClient()实例过期很久了,于是查阅了些资料用新版本代码替换了手上项目的代码并且正常测试完.生产上也正常运行完,算是一次补习,特记录下替换过程和调用完后的处理. 1:来看下原来的调用代码,也是最常用的(httpclient版本超过4.2.6): 项目原先用的4.3.1,版本无所谓了,过了4.2.6就已经过时了,过时代码下面我会标注. Htt…
转换时可以指定编码格式:GBK.UTF-8 public class Demo { public static void main(String[] args) { File f = new File("word.txt"); FileOutputStream out = null;//字节流 OutputStreamWriter osw = null;//字节流转字符流 BufferedWriter bw = null;//缓冲字符流 try { out = new FileOutp…
我们知道,当结束对一个流的操作时,需要调用流的close()方法对其进行释放,这将释放掉与这个流有关的所有资源,包括文件句柄.端口等.如果不关闭流,垃圾回收机制将无法识别你是否已使用完这个文件,读取的文件会占用内存无法释放,造成内存泄露. 在Java 6和之前版本,常用的做法是在finally模块中关闭流,如下: OutputStream out=null; try{ out = new FileOutputSteam("/data.txt"); //流的处理 }catch(IOExc…
前言 本文将上一节做的代码,对copy方法与关闭流方法进行封装,并使用try...with...resource关闭流. copy方法封装 我们将copy方法封装,使得只需传入两个流,就能将输入流的源文件copy到输出流的目的文件. 值得注意的是,由于ByteArrayOutputStream不能直接写入文件,调用此方法后,数据保存在流中. 流关闭方法封装 方法一:原始方法 最原始的方法莫过于try...catch与close()结合 public static void close(Input…
关闭流文件和file文件的时候,先打开的后关闭,后打开的先关闭,实在不行调用system.jc()方法…