package org.wxz.tools.oracle.io.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.Writer;
import org.wxz.tools.oracle.codec.enumeration.CharsetNameEnum;
import org.wxz.tools.oracle.exception.print.util.ExceptionPrintUtil;
import org.wxz.tools.oracle.io.file.util.FileFolderUtil;
import org.wxz.tools.oracle.io.file.util.FileMakeUtil;
/**
* 流打开工具类
*
* @author XiongZhi.Wu 2017年12月10日
*/
public abstract class IOOpenUtil {
// 默认是否要续写
private static final boolean DEFAULT_APPEND = true;
// 默认字符集名称
private static final String DEFAULT_CHARSET_NAME = CharsetNameEnum.UTF_8.getValue();
/**
* ************************************************************FileInputStream**************************************************
*/
public static FileInputStream initFileInputStream(String file) {
return initFileInputStream(new File(file));
}
public static FileInputStream initFileInputStream(File file) {
try {
return new FileInputStream(file);
} catch (Exception e) {
throw new RuntimeException(ExceptionPrintUtil.initExceptionPrintModel(e, "Open FileInputStream Cause Exception."));
}
}
/**
* ************************************************************FileOutputStream**************************************************
*/
public static FileOutputStream initFileOutputStream(String file) {
return initFileOutputStream(file, DEFAULT_APPEND);
}
public static FileOutputStream initFileOutputStream(String file, boolean append) {
return initFileOutputStream(new File(file), append);
}
public static FileOutputStream initFileOutputStream(File file) {
return initFileOutputStream(file, DEFAULT_APPEND);
}
public static FileOutputStream initFileOutputStream(File file, boolean append) {
if (FileMakeUtil.makeFolder(FileFolderUtil.folder(file))) {
try {
return new FileOutputStream(file, append);
} catch (Exception e) {
throw new RuntimeException(ExceptionPrintUtil.initExceptionPrintModel(e, "Open FileOutputStream Cause Exception."));
}
} else {
throw new RuntimeException(ExceptionPrintUtil.initExceptionPrintModel("Make Folder Cause Exception."));
}
}
/**
* ************************************************************BufferedInputStream**************************************************
*/
public static BufferedInputStream initBufferedInputStream(String file) {
return initBufferedInputStream(initFileInputStream(file));
}
public static BufferedInputStream initBufferedInputStream(File file) {
return initBufferedInputStream(initFileInputStream(file));
}
public static BufferedInputStream initBufferedInputStream(InputStream inputStream) {
return new BufferedInputStream(inputStream);
}
/**
* ************************************************************BufferedOutputStream**************************************************
*/
public static BufferedOutputStream initBufferedOutputStream(String file) {
return initBufferedOutputStream(file, DEFAULT_APPEND);
}
public static BufferedOutputStream initBufferedOutputStream(String file, boolean append) {
return initBufferedOutputStream(initFileOutputStream(file, append));
}
public static BufferedOutputStream initBufferedOutputStream(File file) {
return initBufferedOutputStream(file, DEFAULT_APPEND);
}
public static BufferedOutputStream initBufferedOutputStream(File file, boolean append) {
return initBufferedOutputStream(initFileOutputStream(file, append));
}
public static BufferedOutputStream initBufferedOutputStream(OutputStream outputStream) {
return new BufferedOutputStream(outputStream);
}
/**
* ************************************************************BufferedReader**************************************************
*/
public static BufferedReader initBufferedReader(String file) {
return initBufferedReader(initFileInputStream(file));
}
public static BufferedReader initBufferedReader(String file, String charsetName) {
return initBufferedReader(initFileInputStream(file), charsetName);
}
public static BufferedReader initBufferedReader(File file) {
return initBufferedReader(initFileInputStream(file));
}
public static BufferedReader initBufferedReader(File file, String charsetName) {
return initBufferedReader(initFileInputStream(file), charsetName);
}
public static BufferedReader initBufferedReader(InputStream inputStream) {
return initBufferedReader(inputStream, DEFAULT_CHARSET_NAME);
}
public static BufferedReader initBufferedReader(InputStream inputStream, String charsetName) {
try {
return initBufferedReader(new InputStreamReader(inputStream, charsetName));
} catch (Exception e) {
throw new RuntimeException(ExceptionPrintUtil.initExceptionPrintModel(e, "Open BufferedReader Cause Exception."));
}
}
public static BufferedReader initBufferedReader(Reader reader) {
return new BufferedReader(reader);
}
/**
* ************************************************************PrintWriter**************************************************
*/
public static PrintWriter initPrintWriter(String file) {
return initPrintWriter(initFileOutputStream(file));
}
public static PrintWriter initPrintWriter(String file, boolean append) {
return initPrintWriter(initFileOutputStream(file, append));
}
public static PrintWriter initPrintWriter(String file, String charsetName) {
return initPrintWriter(initFileOutputStream(file), charsetName);
}
public static PrintWriter initPrintWriter(String file, boolean append, String charsetName) {
return initPrintWriter(initFileOutputStream(file, append), charsetName);
}
public static PrintWriter initPrintWriter(File file) {
return initPrintWriter(initFileOutputStream(file));
}
public static PrintWriter initPrintWriter(File file, boolean append) {
return initPrintWriter(initFileOutputStream(file, append));
}
public static PrintWriter initPrintWriter(File file, String charsetName) {
return initPrintWriter(initFileOutputStream(file), charsetName);
}
public static PrintWriter initPrintWriter(File file, boolean append, String charsetName) {
return initPrintWriter(initFileOutputStream(file, append), charsetName);
}
public static PrintWriter initPrintWriter(OutputStream outputStream) {
return initPrintWriter(outputStream, DEFAULT_CHARSET_NAME);
}
public static PrintWriter initPrintWriter(OutputStream outputStream, String charsetName) {
try {
return initPrintWriter(new OutputStreamWriter(outputStream, charsetName));
} catch (Exception e) {
throw new RuntimeException(ExceptionPrintUtil.initExceptionPrintModel(e, "Open PrintWriter Cause Exception."));
}
}
public static PrintWriter initPrintWriter(Writer writer) {
return new PrintWriter(writer);
}
}