一、前言
基于granite源码包org.granite.util.StreamUtil数据流工具类,获取指定路径加载器二进制数据getResourceAsBytes、getResourceAsStream获取ByteArrayInputStream流数据、getResourceAsString获取字符串数据等。
二、源码说明
package org.granite.util;@b@@b@import java.io.ByteArrayInputStream;@b@import java.io.ByteArrayOutputStream;@b@import java.io.FileNotFoundException;@b@import java.io.IOException;@b@import java.io.InputStream;@b@@b@public class StreamUtil@b@{@b@ public static byte[] getResourceAsBytes(String path, ClassLoader loader)@b@ throws IOException@b@ {@b@ if (loader == null)@b@ loader = Thread.currentThread().getContextClassLoader();@b@ InputStream is = loader.getResourceAsStream(path);@b@ if (is == null)@b@ throw new FileNotFoundException("Resource not found: " + path);@b@@b@ ByteArrayOutputStream baos = new ByteArrayOutputStream(512);@b@ try {@b@ int b = -1;@b@ while ((b = is.read()) != -1)@b@ baos.write(b);@b@ } finally {@b@ is.close();@b@ }@b@ return baos.toByteArray();@b@ }@b@@b@ public static ByteArrayInputStream getResourceAsStream(String path, ClassLoader loader) throws IOException {@b@ return new ByteArrayInputStream(getResourceAsBytes(path, loader));@b@ }@b@@b@ public static String getResourceAsString(String path, ClassLoader loader) throws IOException {@b@ return new String(getResourceAsBytes(path, loader));@b@ }@b@@b@ public static String getStreamAsString(InputStream is) throws IOException {@b@ if (is == null)@b@ return null;@b@@b@ ByteArrayOutputStream baos = new ByteArrayOutputStream(512);@b@ try {@b@ int b = -1;@b@ while ((b = is.read()) != -1)@b@ baos.write(b);@b@ } finally {@b@ is.close();@b@ }@b@ return new String(baos.toByteArray());@b@ }@b@}