关闭IO流定义成一个工具类

在写IO流经常遇到要关闭多个流的时候,比较麻烦,这时候就需要一个工具类来一键关闭所有的接口

简单的说就是把要关闭的流,传入到工具类当中,然后调用工具类实现关闭流的效果;

 

关键在于:做一个关闭流接口的形参,里面的参数代表可变参数,不管传进来多少个参数都会放到数组里面

 

 

一、以随机流关闭为例子,本来是要开启几个就要关闭几个,比较的麻烦

		RandomAccessFile rea = new RandomAccessFile("a.exe", "r");// 读
		RandomAccessFile wir = new RandomAccessFile("b.exe", "rw");//写
		 rea.close();
		 wir.close();RandomAccessFile rea = new RandomAccessFile("a.exe", "r");// 读
		RandomAccessFile wir = new RandomAccessFile("b.exe", "rw");//写
		 rea.close();
		 wir.close();

 

 

二、然后我们调用工具类的关闭方法

 

RandomAccessFile rea = new RandomAccessFile("aaa.exe", "r");// 读
		RandomAccessFile wir = new RandomAccessFile("b.exe", "rw");// 写
		 rea.close();
		 wir.close();
		//把需要关闭的流把它们的参数传进工具类去
		CloseUtils.closeAll(rea, wir);//		//把需要关闭的流把它们的参数传进工具类去
		CloseUtils.closeAll(rea, wir);//


三,最后我们在工具类中生成方法

package Test;

import java.io.Closeable;
import java.io.IOException;

public class CloseUtils {
	// 做一个关闭流接口的形参,里面的参数代表可变参数,不管传进来多少个参数都会放到数组里面
	public static void closeAll(Closeable... cs) {
		for (Closeable c : cs) {// 遍历数组
			if (c != null) {// 只要传进来的不是空的都给它把流关闭
				try {
					c.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}


 

你可能感兴趣的:(JAVA基础,IO流)