Utilpublic final class Util extends Object The Util class cannot be instantiated and stores short static convenience
methods that are often quite useful.
|
Fields Summary |
---|
public static final int | DEFAULT_COPY_BUFFER_SIZEThe default buffer size used by {@link #copyStream copyStream }
and {@link #copyReader copyReader }. It's value is 1024. |
Constructors Summary |
---|
private Util()
// Cannot be instantiated
|
Methods Summary |
---|
public static final long | copyReader(java.io.Reader source, java.io.Writer dest, int bufferSize, long streamSize, CopyStreamListener listener)Copies the contents of a Reader to a Writer using a
copy buffer of a given size and notifies the provided
CopyStreamListener of the progress of the copy operation by calling
its bytesTransferred(long, int) method after each write to the
destination. If you wish to notify more than one listener you should
use a CopyStreamAdapter as the listener and register the additional
listeners with the CopyStreamAdapter.
The contents of the Reader are
read until its end is reached, but neither the source nor the
destination are closed. You must do this yourself outside of the
method call. The number of characters read/written is returned.
int chars;
long total;
char[] buffer;
buffer = new char[bufferSize];
total = 0;
try
{
while ((chars = source.read(buffer)) != -1)
{
// Technically, some read(char[]) methods may return 0 and we cannot
// accept that as an indication of EOF.
if (chars == 0)
{
chars = source.read();
if (chars < 0)
break;
dest.write(chars);
dest.flush();
++total;
if (listener != null)
listener.bytesTransferred(total, chars, streamSize);
continue;
}
dest.write(buffer, 0, chars);
dest.flush();
total += chars;
if (listener != null)
listener.bytesTransferred(total, chars, streamSize);
}
}
catch (IOException e)
{
throw new CopyStreamException("IOException caught while copying.",
total, e);
}
return total;
| public static final long | copyReader(java.io.Reader source, java.io.Writer dest, int bufferSize)Copies the contents of a Reader to a Writer using a
copy buffer of a given size. The contents of the Reader are
read until its end is reached, but neither the source nor the
destination are closed. You must do this yourself outside of the
method call. The number of characters read/written is returned.
return copyReader(source, dest, bufferSize,
CopyStreamEvent.UNKNOWN_STREAM_SIZE, null);
| public static final long | copyReader(java.io.Reader source, java.io.Writer dest)Same as copyReader(source, dest, DEFAULT_COPY_BUFFER_SIZE);
return copyReader(source, dest, DEFAULT_COPY_BUFFER_SIZE);
| public static final long | copyStream(java.io.InputStream source, java.io.OutputStream dest, int bufferSize, long streamSize, CopyStreamListener listener, boolean flush)Copies the contents of an InputStream to an OutputStream using a
copy buffer of a given size and notifies the provided
CopyStreamListener of the progress of the copy operation by calling
its bytesTransferred(long, int) method after each write to the
destination. If you wish to notify more than one listener you should
use a CopyStreamAdapter as the listener and register the additional
listeners with the CopyStreamAdapter.
The contents of the InputStream are
read until the end of the stream is reached, but neither the
source nor the destination are closed. You must do this yourself
outside of the method call. The number of bytes read/written is
returned.
int bytes;
long total;
byte[] buffer;
buffer = new byte[bufferSize];
total = 0;
try
{
while ((bytes = source.read(buffer)) != -1)
{
// Technically, some read(byte[]) methods may return 0 and we cannot
// accept that as an indication of EOF.
if (bytes == 0)
{
bytes = source.read();
if (bytes < 0)
break;
dest.write(bytes);
if(flush)
dest.flush();
++total;
if (listener != null)
listener.bytesTransferred(total, 1, streamSize);
continue;
}
dest.write(buffer, 0, bytes);
if(flush)
dest.flush();
total += bytes;
if (listener != null)
listener.bytesTransferred(total, bytes, streamSize);
}
}
catch (IOException e)
{
throw new CopyStreamException("IOException caught while copying.",
total, e);
}
return total;
| public static final long | copyStream(java.io.InputStream source, java.io.OutputStream dest, int bufferSize, long streamSize, CopyStreamListener listener)Copies the contents of an InputStream to an OutputStream using a
copy buffer of a given size and notifies the provided
CopyStreamListener of the progress of the copy operation by calling
its bytesTransferred(long, int) method after each write to the
destination. If you wish to notify more than one listener you should
use a CopyStreamAdapter as the listener and register the additional
listeners with the CopyStreamAdapter.
The contents of the InputStream are
read until the end of the stream is reached, but neither the
source nor the destination are closed. You must do this yourself
outside of the method call. The number of bytes read/written is
returned.
return copyStream(source, dest, bufferSize, streamSize, listener,
true);
| public static final long | copyStream(java.io.InputStream source, java.io.OutputStream dest, int bufferSize)Copies the contents of an InputStream to an OutputStream using a
copy buffer of a given size. The contents of the InputStream are
read until the end of the stream is reached, but neither the
source nor the destination are closed. You must do this yourself
outside of the method call. The number of bytes read/written is
returned.
return copyStream(source, dest, bufferSize,
CopyStreamEvent.UNKNOWN_STREAM_SIZE, null);
| public static final long | copyStream(java.io.InputStream source, java.io.OutputStream dest)Same as copyStream(source, dest, DEFAULT_COPY_BUFFER_SIZE);
return copyStream(source, dest, DEFAULT_COPY_BUFFER_SIZE);
|
|