/*
* 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() {
}
}