com.siashan.toolkit.crypt.util.CommonUtil Maven / Gradle / Ivy
package com.siashan.toolkit.crypt.util;
import com.siashan.toolkit.crypt.CryptException;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
/**
* 通用工具类
*
* @author siashan
* @since v1.0.1
**/
public class CommonUtil {
//------------------------------------------------文件流操作相关-------------------------------------------------------//
/**
* 文件转为流
*
* @param file 文件
* @return {@link FileInputStream}
*/
public static FileInputStream toStream(File file) {
try {
return new FileInputStream(file);
} catch (FileNotFoundException e) {
throw new CryptException("文件流转换异常");
}
}
/**
* String 转为流
*
* @param content 内容bytes
* @return 字节流
*/
public static ByteArrayInputStream toStream(byte[] content) {
if (content == null) {
return null;
}
return new ByteArrayInputStream(content);
}
/**
* 转换为{@link BufferedInputStream}
*
* @param in {@link InputStream}
* @return {@link BufferedInputStream}
*/
public static BufferedInputStream toBuffered(InputStream in) {
return (in instanceof BufferedInputStream) ? (BufferedInputStream) in : new BufferedInputStream(in);
}
/**
* 关闭
* 关闭失败不会抛出异常
*
* @param closeable 被关闭的对象
*/
public static void close(Closeable closeable) {
if (null != closeable) {
try {
closeable.close();
} catch (Exception e) {
// 静默关闭
}
}
}
/**
* 获得一个Writer,默认编码UTF-8
*
* @param out 输入流
* @return OutputStreamWriter对象
*/
public static OutputStreamWriter getUtf8Writer(OutputStream out) {
return getWriter(out, StandardCharsets.UTF_8);
}
/**
* 获得一个文件读取器,默认使用UTF-8编码
*
* @param in 输入流
* @return BufferedReader对象
*/
public static BufferedReader getUtf8Reader(InputStream in) {
return getReader(in, StandardCharsets.UTF_8);
}
/**
* 获得一个Reader
*
* @param in 输入流
* @param charset 字符集
* @return BufferedReader对象
*/
public static BufferedReader getReader(InputStream in, Charset charset) {
if (null == in) {
return null;
}
InputStreamReader reader;
if (null == charset) {
reader = new InputStreamReader(in);
} else {
reader = new InputStreamReader(in, charset);
}
return new BufferedReader(reader);
}
/**
* 获得一个Writer
*
* @param out 输入流
* @param charset 字符集
* @return OutputStreamWriter对象
*/
public static OutputStreamWriter getWriter(OutputStream out, Charset charset) {
if (null == out) {
return null;
}
if (null == charset) {
return new OutputStreamWriter(out);
} else {
return new OutputStreamWriter(out, charset);
}
}
}