/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.engine.jdbc;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;

Stream copying utilities
Author:Steve Ebersole
/** * Stream copying utilities * * @author Steve Ebersole */
public class StreamUtils {
Default size to use for reading buffers.
/** * Default size to use for reading buffers. */
public static final int DEFAULT_CHUNK_SIZE = 1024;
Copy the inputStream to the outputStream. Uses a buffer of the default size (DEFAULT_CHUNK_SIZE).
Params:
  • inputStream – The input stream to read
  • outputStream – The output stream to write to
Throws:
  • IOException – If a problem occurred accessing either stream
Returns:The number of bytes read
/** * Copy the inputStream to the outputStream. Uses a buffer of the default size ({@link #DEFAULT_CHUNK_SIZE}). * * @param inputStream The input stream to read * @param outputStream The output stream to write to * * @return The number of bytes read * * @throws IOException If a problem occurred accessing either stream */
public static long copy(InputStream inputStream, OutputStream outputStream) throws IOException { return copy( inputStream, outputStream, DEFAULT_CHUNK_SIZE ); }
Copy the inputStream to the outputStream using a buffer of the specified size
Params:
  • inputStream – The input stream to read
  • outputStream – The output stream to write to
  • bufferSize – The size of the buffer to use for reading
Throws:
  • IOException – If a problem occurred accessing either stream
Returns:The number of bytes read
/** * Copy the inputStream to the outputStream using a buffer of the specified size * * @param inputStream The input stream to read * @param outputStream The output stream to write to * @param bufferSize The size of the buffer to use for reading * * @return The number of bytes read * * @throws IOException If a problem occurred accessing either stream */
public static long copy(InputStream inputStream, OutputStream outputStream, int bufferSize) throws IOException { final byte[] buffer = new byte[bufferSize]; long count = 0; int n; while ( -1 != ( n = inputStream.read( buffer ) ) ) { outputStream.write( buffer, 0, n ); count += n; } return count; }
Copy the reader to the writer. Uses a buffer of the default size (DEFAULT_CHUNK_SIZE).
Params:
  • reader – The reader to read from
  • writer – The writer to write to
Throws:
  • IOException – If a problem occurred accessing reader or writer
Returns:The number of bytes read
/** * Copy the reader to the writer. Uses a buffer of the default size ({@link #DEFAULT_CHUNK_SIZE}). * * @param reader The reader to read from * @param writer The writer to write to * * @return The number of bytes read * * @throws IOException If a problem occurred accessing reader or writer */
public static long copy(Reader reader, Writer writer) throws IOException { return copy( reader, writer, DEFAULT_CHUNK_SIZE ); }
Copy the reader to the writer using a buffer of the specified size
Params:
  • reader – The reader to read from
  • writer – The writer to write to
  • bufferSize – The size of the buffer to use for reading
Throws:
  • IOException – If a problem occurred accessing either stream
Returns:The number of bytes read
/** * Copy the reader to the writer using a buffer of the specified size * * @param reader The reader to read from * @param writer The writer to write to * @param bufferSize The size of the buffer to use for reading * * @return The number of bytes read * * @throws IOException If a problem occurred accessing either stream */
public static long copy(Reader reader, Writer writer, int bufferSize) throws IOException { final char[] buffer = new char[bufferSize]; long count = 0; int n; while ( -1 != ( n = reader.read( buffer ) ) ) { writer.write( buffer, 0, n ); count += n; } return count; } private StreamUtils() { } }