首页

关于granite源码包StreamUtil流工具类获取指定资源为二进制/ByteArrayInputStream等操作

标签:granite,StreamUtil,流工具类     发布时间:2018-05-22   

一、前言

基于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@}