Package org.vosao.utils

Source Code of org.vosao.utils.StreamUtil

/**
* Vosao CMS. Simple CMS for Google App Engine.
*
* Copyright (C) 2009-2010 Vosao development team.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
*
* email: vosao.dev@gmail.com
*/

package org.vosao.utils;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class StreamUtil {

  private static final Log logger = LogFactory.getLog(
      StreamUtil.class);

 
  public static byte[] readFileStream(final InputStream stream)
      throws IOException {
    byte[] buffer = new byte[4096];
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    long contentLength = 0;
    int n = 0;
    while (-1 != (n = stream.read(buffer))) {
      contentLength += n;
      output.write(buffer, 0, n);
    }
    return output.toByteArray();
  }

  public static String getTextResource(final String path) throws IOException {
    return getTextResource(StreamUtil.class.getClassLoader(), path);
  }

  public static InputStream getResource(ClassLoader classLoader,
      final String path) throws IOException {
    InputStream in = classLoader.getResourceAsStream(path);
    if (in == null) {
      throw new IOException("Empty resource.");
    }
    return in;
  }
 
  public static String getTextResource(ClassLoader classLoader,
      final String path) throws IOException {
    InputStream in = getResource(classLoader, path);
    if (in == null) {
      throw new IOException("Empty input stream.");
    }
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    StringBuffer buf = new StringBuffer();
    while (reader.ready()) {
      buf.append(reader.readLine()).append("\n");
    }
    return buf.toString();
  }

  public static byte[] getBytesResource(final String path)
      throws IOException {
    return getBytesResource(StreamUtil.class.getClassLoader(), path);
  }
 
  public static byte[] getBytesResource(ClassLoader classLoader,
      final String path) throws IOException {
    InputStream in = getResource(classLoader, path);
    if (in == null) {
      throw new IOException("Empty input stream.");
    }
    return IOUtils.toByteArray(in);
  }

  /**
   * Converts an object to an array of bytes . Uses the Logging utilities in
   * j2sdk1.4 for reporting exceptions.
   *
   * @param object
   *            the object to convert.
   * @return the associated byte array.
   */
  public static byte[] toBytes(Object object) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {
      ObjectOutputStream oos = new java.io.ObjectOutputStream(baos);
      oos.writeObject(object);
    } catch(IOException ioe) {
      logger.error(ioe.getMessage());
    }
    return baos.toByteArray();
  }

  /**
   * Converts an array of bytes back to its constituent object. The input
   * array is assumed to have been created from the original object.
   *
   * @param bytes
   *            the byte array to convert.
   * @return the associated object.
   */
  public static Object toObject(byte[] bytes) {
    Object object = null;
    try {
      object = new ObjectInputStream(new ByteArrayInputStream(bytes))
          .readObject();
    } catch (IOException ioe) {
      logger.error(ioe.getMessage());
    } catch (ClassNotFoundException cnfe) {
      logger.info(cnfe.getMessage());
    }
    return object;
  }
}
TOP

Related Classes of org.vosao.utils.StreamUtil

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.