package org.wxz.tools.oracle.io.util;
import java.io.Closeable;
import java.io.Flushable;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;
import org.wxz.tools.oracle.empty.util.NullUtil;
import org.wxz.tools.oracle.exception.print.util.ExceptionPrintUtil;
/**
* 流关闭工具类
*
* @author XiongZhi.Wu 2017年12月10日
*/
public abstract class IOCloseUtil {
/**
* 关闭
*
* @author XiongZhi.Wu 2017年12月10日
* @param ios
* 各种流
*/
public static void flushable(Flushable… ios) {
for (Flushable io : ios) {
if (NullUtil.isNotNull(io)) {
try {
io.flush();
} catch (Exception e) {
System.out.println(ExceptionPrintUtil.initExceptionPrintModel(e, “IO Flush Cause Exception”));
}
}
}
}
/**
* 关闭
*
* @author XiongZhi.Wu 2017年12月10日
* @param ios
* 各种流
*/
public static void closeable(Closeable... ios) {
for (Closeable io : ios) {
if (NullUtil.isNotNull(io)) {
try {
io.close();
} catch (Exception e) {
System.out.println(ExceptionPrintUtil.initExceptionPrintModel(e, "IO Close Cause Exception"));
}
}
}
}
/**
* 关闭
*
* @author XiongZhi.Wu 2017年12月10日
* @param is
* 输入流
*/
public static void closeInputStream(InputStream is) {
closeable(is);
}
/**
* 关闭
*
* @author XiongZhi.Wu 2017年12月10日
* @param os
* 输出流
*/
public static void closeOutputStream(OutputStream os) {
flushable(os);
closeable(os);
}
/**
* 关闭
*
* @author XiongZhi.Wu 2017年12月10日
* @param is
* 输入流
* @param os
* 输入流
*/
public static void closeInputAndOutputStream(InputStream is, OutputStream os) {
closeInputStream(is);
closeOutputStream(os);
}
/**
* 关闭
*
* @author XiongZhi.Wu 2017年12月10日
* @param reader
* 输入流
*/
public static void closeReader(Reader reader) {
closeable(reader);
}
/**
* 关闭
*
* @author XiongZhi.Wu 2017年12月10日
* @param writer
* 输出流
*/
public static void closeWriter(Writer writer) {
flushable(writer);
closeable(writer);
}
/**
* 关闭
*
* @author XiongZhi.Wu 2017年12月10日
* @param reader
* 输入流
* @param writer
* 输出流
*/
public static void closeReaderAndWriter(Reader reader, Writer writer) {
closeReader(reader);
closeWriter(writer);
}
}