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); } } }