package com.opslab.util;
import java.io.*;
/**
* 流相关的操作方法封装
*/
public final class StreamUtil {
/**
* Read an input stream into a string
*/
public final static String streamToString(InputStream in) throws IOException {
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = in.read(b)) != -1; ) {
out.append(new String(b, 0, n));
}
return out.toString();
}
/**
* Read an input stream into a byte[]
*/
public final static byte[] stream2Byte(InputStream is) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int len = 0;
byte[] b = new byte[1024];
while ((len = is.read(b, 0, b.length)) != -1) {
baos.write(b, 0, len);
}
byte[] buffer = baos.toByteArray();
return buffer;
}
/**
* @方法功能 InputStream 转为 byte
*/
public final static byte[] inputStream2Byte(InputStream inStream) throws Exception {
int count = 0;
while (count == 0) {
count = inStream.available();
}
byte[] b = new byte[count];
inStream.read(b);
return b;
}
/**
* @return InputStream
* @throws Exception
* @方法功能 byte 转为 InputStream
*/
public final static InputStream byte2InputStream(byte[] b) throws Exception {
InputStream is = new ByteArrayInputStream(b);
return is;
}
/**
* 将流另存为文件
*/
public final static void streamSaveAsFile(InputStream is, File outfile) {
try (FileOutputStream fos = new FileOutputStream(outfile)) {
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}