版权声明:@By Author Hadoop.W https://blog.csdn.net/u013786479/article/details/82625265
package org.wxz.tools.oracle.io.util;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.Reader;
import org.wxz.tools.oracle.exception.print.util.ExceptionPrintUtil;
import org.wxz.tools.oracle.io.callback.IOReadCallback;
/**
* 流读取工具类
*
* @author XiongZhi.Wu 2017年12月10日
*/
public abstract class IOReadUtil {
/**
* 读取
*
* @author XiongZhi.Wu 2017年12月10日
* @param is
* 输入流
* @return
*/
public static byte[] loopRead(InputStream is) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
loopRead(is, new IOReadCallback() {
@Override
public void service(Integer bit) {
byteArrayOutputStream.write(bit);
}
});
return byteArrayOutputStream.toByteArray();
}
/**
* 读取
*
* @author XiongZhi.Wu 2017年12月10日
* @param is
* 输入流
* @param ioReadCallback
* 回调类
*/
public static void loopRead(InputStream is, IOReadCallback<Integer> ioReadCallback) {
try {
BufferedInputStream bufferedInputStream = null;
if (is instanceof BufferedInputStream) {
bufferedInputStream = (BufferedInputStream) is;
} else {
bufferedInputStream = IOOpenUtil.initBufferedInputStream(is);
}
int bit;
while ((bit = bufferedInputStream.read()) != -1) {
ioReadCallback.service(bit);
}
} catch (Exception e) {
throw new RuntimeException(ExceptionPrintUtil.initExceptionPrintModel(e, "InputStream Loop Read Cause Exception."));
} finally {
IOCloseUtil.closeInputStream(is);
}
}
/**
* 读取
*
* @author XiongZhi.Wu 2017年12月10日
* @param reader
* 输入流
* @return
*/
public static String loopRead(Reader reader) {
StringBuilder record = new StringBuilder();
loopRead(reader, new IOReadCallback<String>() {
@Override
public void service(String line) {
record.append(line);
}
});
return record.toString();
}
/**
* 读取
*
* @author XiongZhi.Wu 2017年12月10日
* @param reader
* 输入流
* @param ioReadCallback
* 回调类
*/
public static void loopRead(Reader reader, IOReadCallback<String> ioReadCallback) {
try {
BufferedReader bufferedReader = null;
if (reader instanceof BufferedReader) {
bufferedReader = (BufferedReader) reader;
} else {
bufferedReader = IOOpenUtil.initBufferedReader(reader);
}
String line;
while ((line = bufferedReader.readLine()) != null) {
ioReadCallback.service(line);
}
} catch (Exception e) {
throw new RuntimeException(ExceptionPrintUtil.initExceptionPrintModel(e, "Reader Loop Read Cause Exception."));
} finally {
IOCloseUtil.closeReader(reader);
}
}
}