Package org.jeecgframework.core.util

Source Code of org.jeecgframework.core.util.StreamUtils

package org.jeecgframework.core.util;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;

import jodd.io.StringInputStream;



/**
*
* @author Andy.Chen
* @mail Chenjunjun.ZJ@gmail.com
*
*/
public class StreamUtils {

  final static int BUFFER_SIZE = 4096;
  /**
   * 将InputStream转换成String
   *
   * @param in
   *            InputStream
   * @return String
   * @throws Exception
   *
   */
  public static String InputStreamTOString(InputStream in) {

    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    byte[] data = new byte[BUFFER_SIZE];
    String string = null;
    int count = 0;
    try {
      while ((count = in.read(data, 0, BUFFER_SIZE)) != -1)
        outStream.write(data, 0, count);
    } catch (IOException e) {
      e.printStackTrace();
    }

    data = null;
    try {
      string = new String(outStream.toByteArray(), "UTF-8");
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }
    return string;
  }

  /**
   * 将InputStream转换成某种字符编码的String
   *
   * @param in
   * @param encoding
   * @return
   * @throws Exception
   */
  public static String InputStreamTOString(InputStream in, String encoding) {
    String string = null;
    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    byte[] data = new byte[BUFFER_SIZE];
    int count = -1;
    try {
      while ((count = in.read(data, 0, BUFFER_SIZE)) != -1)
        outStream.write(data, 0, count);
    } catch (IOException e) {
      e.printStackTrace();
    }

    data = null;
    try {
      string = new String(outStream.toByteArray(), encoding);
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }
    return string;
  }

  /**
   * 将String转换成InputStream
   *
   * @param in
   * @return
   * @throws Exception
   */
  public static InputStream StringTOInputStream(String in) throws Exception {

    ByteArrayInputStream is = new ByteArrayInputStream(in.getBytes("UTF-8"));
    return is;
  }

  /**
   * 将String转换成InputStream
   *
   * @param in
   * @return
   * @throws Exception
   */
  public static byte[] StringTObyte(String in) {
    byte[] bytes = null;
    try {
      bytes = InputStreamTOByte(StringTOInputStream(in));
    } catch (IOException e) {
    } catch (Exception e) {
      e.printStackTrace();
    }
    return bytes;
  }

  /**
   * 将InputStream转换成byte数组
   *
   * @param in
   *            InputStream
   * @return byte[]
   * @throws IOException
   */
  public static byte[] InputStreamTOByte(InputStream in) throws IOException {

    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    byte[] data = new byte[BUFFER_SIZE];
    int count = -1;
    while ((count = in.read(data, 0, BUFFER_SIZE)) != -1)
      outStream.write(data, 0, count);

    data = null;
    return outStream.toByteArray();
  }

  /**
   * 将byte数组转换成InputStream
   *
   * @param in
   * @return
   * @throws Exception
   */
  public static InputStream byteTOFInputStream(byte[] in) throws Exception {

    InputStream is = new StringInputStream(InputStreamTOString(StreamUtils.byteTOInputStream(in)));
    return is;
  }
  /**
   * 将byte数组转换成InputStream
   *
   * @param in
   * @return
   * @throws Exception
   */
  public static InputStream byteTOInputStream(byte[] in) throws Exception {

    ByteArrayInputStream is = new ByteArrayInputStream(in);
    return is;
  }

  /**
   * 将byte数组转换成String
   *
   * @param in
   * @return
   * @throws Exception
   */
  public static String byteTOString(byte[] in) {

    InputStream is = null;
    try {
      is = byteTOInputStream(in);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return InputStreamTOString(is, "UTF-8");
  }
  /**
   * 将byte数组转换成String
   *
   * @param in
   * @return
   * @throws Exception
   */
  public static String getString(String in) {

    String is = null;
    try {
      is = byteTOString(StringTObyte(in));
    } catch (Exception e) {
      e.printStackTrace();
    }
    return is;
  }

  // InputStream 转换成byte[]
  public byte[] getBytes(InputStream is) throws IOException {

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    byte[] b = new byte[BUFFER_SIZE];
    int len = 0;

    while ((len = is.read(b, 0, BUFFER_SIZE)) != -1) {
      baos.write(b, 0, len);
    }

    baos.flush();

    byte[] bytes = baos.toByteArray();

    org.jeecgframework.core.util.LogUtil.info(new String(bytes));

    return bytes;
  }
  /**
   * 根据文件路径创建文件输入流处理
   * 以字节为单位(非 unicode )
   * @param path
   * @return
   */
  public static FileInputStream getFileInputStream(String filepath) {
    FileInputStream fileInputStream = null;
    try {
      fileInputStream = new FileInputStream(filepath);
    } catch (FileNotFoundException e) {
      System.out.print("错误信息:文件不存在");
      e.printStackTrace();
    }
    return fileInputStream;
  }
  /**
   * 根据文件对象创建文件输入流处理
   * 以字节为单位(非 unicode )
   * @param path
   * @return
   */
  public static FileInputStream getFileInputStream(File file) {
    FileInputStream fileInputStream = null;
    try {
      fileInputStream = new FileInputStream(file);
    } catch (FileNotFoundException e) {
      System.out.print("错误信息:文件不存在");
      e.printStackTrace();
    }
    return fileInputStream;
  }
  /**
    * 根据文件对象创建文件输出流处理
   * 以字节为单位(非 unicode )
   * @param file
   * @param append true:文件以追加方式打开,false:则覆盖原文件的内容
   * @return
   */
  public static FileOutputStream getFileOutputStream(File file,boolean append) {
    FileOutputStream fileOutputStream = null;
    try {
      fileOutputStream = new FileOutputStream(file,append);
    } catch (FileNotFoundException e) {
      System.out.print("错误信息:文件不存在");
      e.printStackTrace();
    }
    return fileOutputStream;
  }
  /**
   * 根据文件路径创建文件输出流处理
   * 以字节为单位(非 unicode )
   * @param path
   * @param append true:文件以追加方式打开,false:则覆盖原文件的内容
   * @return
   */
  public static FileOutputStream getFileOutputStream(String filepath,boolean append) {
    FileOutputStream fileOutputStream = null;
    try {
      fileOutputStream = new FileOutputStream(filepath,append);
    } catch (FileNotFoundException e) {
      System.out.print("错误信息:文件不存在");
      e.printStackTrace();
    }
    return fileOutputStream;
  }

  public static File getFile(String filepath) {
    return new File(filepath);
  }
  public static ByteArrayOutputStream getByteArrayOutputStream() {
    return new ByteArrayOutputStream();
  }

}
TOP

Related Classes of org.jeecgframework.core.util.StreamUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.