org.apache.commons.io
Class IOUtils
java.lang.Object org.apache.commons.io.IOUtils
General IO stream manipulation utilities.
This class provides static utility methods for input/output operations.
- closeQuietly - these methods close a stream ignoring nulls and exceptions- 这些方法忽略空值和异常关闭流
- toXxx/read - these methods read data from a streamto - 这些方法从流中读取数据
- write - these methods write data to a stream- 写这些方法将数据写入流
- copy - these methods copy all the data from one stream to another - 这些方法的所有数据复制到另一个从一个流
- contentEquals - these methods compare the content of two streams- 这些方法比较两个数据流的内容
The byte-to-char methods and char-to-byte methods involve a conversion step. Two methods are provided in each case, one that uses the platform default encoding and the other which allows you to specify an encoding. You are encouraged to always specify an encoding because relying on the platform default can lead to unexpected results, for example when moving from development to production.
All the methods in this class that read a stream are buffered internally. This means that there is no cause to use a BufferedInputStream
or BufferedReader
. The default buffer size of 4K has been shown to be efficient in tests.
Wherever possible, the methods in this class do not flush or close the stream. This is to avoid making non-portable assumptions about the streams' origin and further use. Thus the caller is still responsible for closing streams after use.
1.closeQuietly
closeQuietly
public static void closeQuietly(Reader input)
-
Unconditionally close an
Reader
.Equivalent to
Reader.close()
, except any exceptions will be ignored. This is typically used in finally blocks.Example code:
char[] data = new char[1024]; Reader in = null; try { in = new FileReader("foo.txt"); in.read(data); in.close(); //close errors are handled } catch (Exception e) { // error handling } finally { IOUtils.closeQuietly(in); }
-
-
Parameters:
-
input
- the Reader to close, may be null or already closed
-
closeQuietly
public static void closeQuietly(Writer output)
-
Unconditionally close a
Writer
.Equivalent to
Writer.close()
, except any exceptions will be ignored. This is typically used in finally blocks.Example code:
Writer out = null; try { out = new StringWriter(); out.write("Hello World"); out.close(); //close errors are handled } catch (Exception e) { // error handling } finally { IOUtils.closeQuietly(out); }
-
-
Parameters:
-
output
- the Writer to close, may be null or already closed
-
closeQuietly
public static void closeQuietly(InputStream input)
-
Unconditionally close an
InputStream
.Equivalent to
InputStream.close()
, except any exceptions will be ignored. This is typically used in finally blocks.Example code:
byte[] data = new byte[1024]; InputStream in = null; try { in = new FileInputStream("foo.txt"); in.read(data); in.close(); //close errors are handled } catch (Exception e) { // error handling } finally { IOUtils.closeQuietly(in); }
-
-
Parameters:
-
input
- the InputStream to close, may be null or already closed
-
closeQuietly
public static void closeQuietly(OutputStream output)
-
Unconditionally close an
OutputStream
.Equivalent to
OutputStream.close()
, except any exceptions will be ignored. This is typically used in finally blocks.Example code:
byte[] data = "Hello, World".getBytes(); OutputStream out = null; try { out = new FileOutputStream("foo.txt"); out.write(data); out.close(); //close errors are handled } catch (IOException e) { // error handling } finally { IOUtils.closeQuietly(out); }
-
-
Parameters:
-
output
- the OutputStream to close, may be null or already closed
-
closeQuietly
public static void closeQuietly(Closeable closeable)
-
Unconditionally close a
Closeable
.Equivalent to
Closeable.close()
, except any exceptions will be ignored. This is typically used in finally blocks.Example code:
Closeable closeable = null; try { closeable = new FileReader("foo.txt"); // process closeable closeable.close(); } catch (Exception e) { // error handling } finally { IOUtils.closeQuietly(closeable); }
-
-
Parameters:
-
closeable
- the object to close, may be null or already closed
Since:
- Commons IO 2.0
-
closeQuietly
public static void closeQuietly(Socket sock)
-
Unconditionally close a
Socket
.Equivalent to
Socket.close()
, except any exceptions will be ignored. This is typically used in finally blocks.Example code:
Socket socket = null; try { socket = new Socket("http://www.foo.com/", 80); // process socket socket.close(); } catch (Exception e) { // error handling } finally { IOUtils.closeQuietly(socket); }
-
-
Parameters:
-
sock
- the Socket to close, may be null or already closed
Since:
- Commons IO 2.0
-
2.toXxx/read
toBufferedInputStream
public static InputStream toBufferedInputStream(InputStream input) throws IOException
-
Fetches entire contents of an
InputStream
and represent same data as result InputStream.This method is useful where,
- Source InputStream is slow.
- It has network resources associated, so we cannot keep it open for long time.
- It has network timeout associated.
toByteArray(InputStream)
, since it avoids unnecessary allocation and copy of byte[].
This method buffers the input internally, so there is no need to use aBufferedInputStream
. -
-
Parameters:
-
input
- Stream to be fully buffered.
Returns:
- A fully buffered stream. Throws:
-
IOException
- if an I/O error occurs
Since:
- Commons IO 2.0
-
toByteArray
public static byte[] toByteArray(InputStream input) throws IOException
-
Get the contents of an
InputStream
as abyte[]
.This method buffers the input internally, so there is no need to use a
BufferedInputStream
. -
-
Parameters:
-
input
- theInputStream
to read from
Returns:
- the requested byte array Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
-
toByteArray
public static byte[] toByteArray(Reader input) throws IOException
-
Get the contents of a
Reader
as abyte[]
using the default character encoding of the platform.This method buffers the input internally, so there is no need to use a
BufferedReader
. -
-
Parameters:
-
input
- theReader
to read from
Returns:
- the requested byte array Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
-
toByteArray
public static byte[] toByteArray(Reader input, String encoding) throws IOException
-
Get the contents of a
Reader
as abyte[]
using the specified character encoding.Character encoding names can be found at IANA.
This method buffers the input internally, so there is no need to use a
BufferedReader
. -
-
Parameters:
-
input
- theReader
to read from -
encoding
- the encoding to use, null means platform default
Returns:
- the requested byte array Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
toByteArray
@Deprecated public static byte[] toByteArray(String input) throws IOException
-
Deprecated.
Use
String.getBytes()
-
Get the contents of a
String
as abyte[]
using the default character encoding of the platform.This is the same as
String.getBytes()
. -
-
Parameters:
-
input
- theString
to convert
Returns:
- the requested byte array Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs (never occurs)
-
toCharArray
public static char[] toCharArray(InputStream is) throws IOException
-
Get the contents of an
InputStream
as a character array using the default character encoding of the platform.This method buffers the input internally, so there is no need to use a
BufferedInputStream
. -
-
Parameters:
-
is
- theInputStream
to read from
Returns:
- the requested character array Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
toCharArray
public static char[] toCharArray(InputStream is, String encoding) throws IOException
-
Get the contents of an
InputStream
as a character array using the specified character encoding.Character encoding names can be found at IANA.
This method buffers the input internally, so there is no need to use a
BufferedInputStream
. -
-
Parameters:
-
is
- theInputStream
to read from -
encoding
- the encoding to use, null means platform default
Returns:
- the requested character array Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
toCharArray
public static char[] toCharArray(Reader input) throws IOException
-
Get the contents of a
Reader
as a character array.This method buffers the input internally, so there is no need to use a
BufferedReader
. -
-
Parameters:
-
input
- theReader
to read from
Returns:
- the requested character array Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
toString
public static String toString(InputStream input) throws IOException
-
Get the contents of an
InputStream
as a String using the default character encoding of the platform.This method buffers the input internally, so there is no need to use a
BufferedInputStream
. -
-
Parameters:
-
input
- theInputStream
to read from
Returns:
- the requested String Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
-
toString
public static String toString(InputStream input, String encoding) throws IOException
-
Get the contents of an
InputStream
as a String using the specified character encoding.Character encoding names can be found at IANA.
This method buffers the input internally, so there is no need to use a
BufferedInputStream
. -
-
Parameters:
-
input
- theInputStream
to read from -
encoding
- the encoding to use, null means platform default
Returns:
- the requested String Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
-
toString
public static String toString(Reader input) throws IOException
-
Get the contents of a
Reader
as a String.This method buffers the input internally, so there is no need to use a
BufferedReader
. -
-
Parameters:
-
input
- theReader
to read from
Returns:
- the requested String Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
-
toString
@Deprecated public static String toString(byte[] input) throws IOException
-
Deprecated.
Use
String.String(byte[])
-
Get the contents of a
byte[]
as a String using the default character encoding of the platform. -
-
Parameters:
-
input
- the byte array to read from
Returns:
- the requested String Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs (never occurs)
-
toString
@Deprecated public static String toString(byte[] input, String encoding) throws IOException
-
Deprecated.
Use
String.String(byte[],String)
-
Get the contents of a
byte[]
as a String using the specified character encoding.Character encoding names can be found at IANA.
-
-
Parameters:
-
input
- the byte array to read from -
encoding
- the encoding to use, null means platform default
Returns:
- the requested String Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs (never occurs)
-
3.read
readLines
public static List<String> readLines(InputStream input) throws IOException
-
Get the contents of an
InputStream
as a list of Strings, one entry per line, using the default character encoding of the platform.This method buffers the input internally, so there is no need to use a
BufferedInputStream
. -
-
Parameters:
-
input
- theInputStream
to read from, not null
Returns:
- the list of Strings, never null Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
readLines
public static List<String> readLines(InputStream input, String encoding) throws IOException
-
Get the contents of an
InputStream
as a list of Strings, one entry per line, using the specified character encoding.Character encoding names can be found at IANA.
This method buffers the input internally, so there is no need to use a
BufferedInputStream
. -
-
Parameters:
-
input
- theInputStream
to read from, not null -
encoding
- the encoding to use, null means platform default
Returns:
- the list of Strings, never null Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
readLines
public static List<String> readLines(Reader input) throws IOException
-
Get the contents of a
Reader
as a list of Strings, one entry per line.This method buffers the input internally, so there is no need to use a
BufferedReader
. -
-
Parameters:
-
input
- theReader
to read from, not null
Returns:
- the list of Strings, never null Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
lineIterator
public static LineIterator lineIterator(Reader reader)
-
Return an Iterator for the lines in a
Reader
.LineIterator
holds a reference to the openReader
specified here. When you have finished with the iterator you should close the reader to free internal resources. This can be done by closing the reader directly, or by callingLineIterator.close()
orLineIterator.closeQuietly(LineIterator)
.The recommended usage pattern is:
try { LineIterator it = IOUtils.lineIterator(reader); while (it.hasNext()) { String line = it.nextLine(); /// do something with line } } finally { IOUtils.closeQuietly(reader); }
-
-
Parameters:
-
reader
- theReader
to read from, not null
Returns:
- an Iterator of the lines in the reader, never null Throws:
-
IllegalArgumentException
- if the reader is null
Since:
- Commons IO 1.2
-
lineIterator
public static LineIterator lineIterator(InputStream input, String encoding) throws IOException
-
Return an Iterator for the lines in an
InputStream
, using the character encoding specified (or default encoding if null).LineIterator
holds a reference to the openInputStream
specified here. When you have finished with the iterator you should close the stream to free internal resources. This can be done by closing the stream directly, or by callingLineIterator.close()
orLineIterator.closeQuietly(LineIterator)
.The recommended usage pattern is:
try { LineIterator it = IOUtils.lineIterator(stream, "UTF-8"); while (it.hasNext()) { String line = it.nextLine(); /// do something with line } } finally { IOUtils.closeQuietly(stream); }
-
-
Parameters:
-
input
- theInputStream
to read from, not null -
encoding
- the encoding to use, null means platform default
Returns:
- an Iterator of the lines in the reader, never null Throws:
-
IllegalArgumentException
- if the input is null -
IOException
- if an I/O error occurs, such as if the encoding is invalid
Since:
- Commons IO 1.2
-
toInputStream
public static InputStream toInputStream(CharSequence input)
- Convert the specified CharSequence to an input stream, encoded as bytes using the default character encoding of the platform.
-
-
Parameters:
-
input
- the CharSequence to convert
Returns:
- an input stream Since:
- Commons IO 2.0
-
toInputStream
public static InputStream toInputStream(CharSequence input, String encoding) throws IOException
-
Convert the specified CharSequence to an input stream, encoded as bytes using the specified character encoding.
Character encoding names can be found at IANA.
-
-
Parameters:
-
input
- the CharSequence to convert -
encoding
- the encoding to use, null means platform default
Returns:
- an input stream Throws:
-
IOException
- if the encoding is invalid
Since:
- Commons IO 2.0
-
toInputStream
public static InputStream toInputStream(String input)
- Convert the specified string to an input stream, encoded as bytes using the default character encoding of the platform.
-
-
Parameters:
-
input
- the string to convert
Returns:
- an input stream Since:
- Commons IO 1.1
-
toInputStream
public static InputStream toInputStream(String input, String encoding) throws IOException
-
Convert the specified string to an input stream, encoded as bytes using the specified character encoding.
Character encoding names can be found at IANA.
-
-
Parameters:
-
input
- the string to convert -
encoding
- the encoding to use, null means platform default
Returns:
- an input stream Throws:
-
IOException
- if the encoding is invalid
Since:
- Commons IO 1.1
-
4.write
write
public static void write(byte[] data, OutputStream output) throws IOException
-
Writes bytes from a
byte[]
to anOutputStream
. -
-
Parameters:
-
data
- the byte array to write, do not modify during output, null ignored -
output
- theOutputStream
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
public static void write(byte[] data, Writer output) throws IOException
-
Writes bytes from a
byte[]
to chars on aWriter
using the default character encoding of the platform.This method uses
String.String(byte[])
. -
-
Parameters:
-
data
- the byte array to write, do not modify during output, null ignored -
output
- theWriter
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
public static void write(byte[] data, Writer output, String encoding) throws IOException
-
Writes bytes from a
byte[]
to chars on aWriter
using the specified character encoding.Character encoding names can be found at IANA.
This method uses
String.String(byte[], String)
. -
-
Parameters:
-
data
- the byte array to write, do not modify during output, null ignored -
output
- theWriter
to write to -
encoding
- the encoding to use, null means platform default
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
public static void write(char[] data, Writer output) throws IOException
-
Writes chars from a
char[]
to aWriter
using the default character encoding of the platform. -
-
Parameters:
-
data
- the char array to write, do not modify during output, null ignored -
output
- theWriter
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
public static void write(char[] data, OutputStream output) throws IOException
-
Writes chars from a
char[]
to bytes on anOutputStream
.This method uses
String.String(char[])
andString.getBytes()
. -
-
Parameters:
-
data
- the char array to write, do not modify during output, null ignored -
output
- theOutputStream
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
public static void write(char[] data, OutputStream output, String encoding) throws IOException
-
Writes chars from a
char[]
to bytes on anOutputStream
using the specified character encoding.Character encoding names can be found at IANA.
This method uses
String.String(char[])
andString.getBytes(String)
. -
-
Parameters:
-
data
- the char array to write, do not modify during output, null ignored -
output
- theOutputStream
to write to -
encoding
- the encoding to use, null means platform default
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
public static void write(CharSequence data, Writer output) throws IOException
-
Writes chars from a
CharSequence
to aWriter
. -
-
Parameters:
-
data
- theCharSequence
to write, null ignored -
output
- theWriter
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 2.0
-
write
public static void write(CharSequence data, OutputStream output) throws IOException
-
Writes chars from a
CharSequence
to bytes on anOutputStream
using the default character encoding of the platform.This method uses
String.getBytes()
. -
-
Parameters:
-
data
- theCharSequence
to write, null ignored -
output
- theOutputStream
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 2.0
-
write
public static void write(CharSequence data, OutputStream output, String encoding) throws IOException
-
Writes chars from a
CharSequence
to bytes on anOutputStream
using the specified character encoding.Character encoding names can be found at IANA.
This method uses
String.getBytes(String)
. -
-
Parameters:
-
data
- theCharSequence
to write, null ignored -
output
- theOutputStream
to write to -
encoding
- the encoding to use, null means platform default
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 2.0
-
write
public static void write(String data, Writer output) throws IOException
-
Writes chars from a
String
to aWriter
. -
-
Parameters:
-
data
- theString
to write, null ignored -
output
- theWriter
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
public static void write(String data, OutputStream output) throws IOException
-
Writes chars from a
String
to bytes on anOutputStream
using the default character encoding of the platform.This method uses
String.getBytes()
. -
-
Parameters:
-
data
- theString
to write, null ignored -
output
- theOutputStream
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
public static void write(String data, OutputStream output, String encoding) throws IOException
-
Writes chars from a
String
to bytes on anOutputStream
using the specified character encoding.Character encoding names can be found at IANA.
This method uses
String.getBytes(String)
. -
-
Parameters:
-
data
- theString
to write, null ignored -
output
- theOutputStream
to write to -
encoding
- the encoding to use, null means platform default
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
@Deprecated public static void write(StringBuffer data, Writer output) throws IOException
- Deprecated. replaced by write(CharSequence, Writer)
-
Writes chars from a
StringBuffer
to aWriter
. -
-
Parameters:
-
data
- theStringBuffer
to write, null ignored -
output
- theWriter
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
@Deprecated public static void write(StringBuffer data, OutputStream output) throws IOException
- Deprecated. replaced by write(CharSequence, OutputStream)
-
Writes chars from a
StringBuffer
to bytes on anOutputStream
using the default character encoding of the platform.This method uses
String.getBytes()
. -
-
Parameters:
-
data
- theStringBuffer
to write, null ignored -
output
- theOutputStream
to write to
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
write
@Deprecated public static void write(StringBuffer data, OutputStream output, String encoding) throws IOException
- Deprecated. replaced by write(CharSequence, OutputStream, String)
-
Writes chars from a
StringBuffer
to bytes on anOutputStream
using the specified character encoding.Character encoding names can be found at IANA.
This method uses
String.getBytes(String)
. -
-
Parameters:
-
data
- theStringBuffer
to write, null ignored -
output
- theOutputStream
to write to -
encoding
- the encoding to use, null means platform default
Throws:
-
NullPointerException
- if output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
writeLines
public static void writeLines(Collection<?> lines, String lineEnding, OutputStream output) throws IOException
-
Writes the
toString()
value of each item in a collection to anOutputStream
line by line, using the default character encoding of the platform and the specified line ending. -
-
Parameters:
-
lines
- the lines to write, null entries produce blank lines -
lineEnding
- the line separator to use, null is system default -
output
- theOutputStream
to write to, not null, not closed
Throws:
-
NullPointerException
- if the output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
writeLines
public static void writeLines(Collection<?> lines, String lineEnding, OutputStream output, String encoding) throws IOException
-
Writes the
toString()
value of each item in a collection to anOutputStream
line by line, using the specified character encoding and the specified line ending.Character encoding names can be found at IANA.
-
-
Parameters:
-
lines
- the lines to write, null entries produce blank lines -
lineEnding
- the line separator to use, null is system default -
output
- theOutputStream
to write to, not null, not closed -
encoding
- the encoding to use, null means platform default
Throws:
-
NullPointerException
- if the output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
writeLines
public static void writeLines(Collection<?> lines, String lineEnding, Writer writer) throws IOException
-
Writes the
toString()
value of each item in a collection to aWriter
line by line, using the specified line ending. -
-
Parameters:
-
lines
- the lines to write, null entries produce blank lines -
lineEnding
- the line separator to use, null is system default -
writer
- theWriter
to write to, not null, not closed
Throws:
-
NullPointerException
- if the input is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
copy
public static int copy(InputStream input, OutputStream output) throws IOException
-
Copy bytes from an
InputStream
to anOutputStream
.This method buffers the input internally, so there is no need to use a
BufferedInputStream
.Large streams (over 2GB) will return a bytes copied value of
-1
after the copy has completed since the correct number of bytes cannot be returned as an int. For large streams use thecopyLarge(InputStream, OutputStream)
method. -
-
Parameters:
-
input
- theInputStream
to read from -
output
- theOutputStream
to write to
Returns:
- the number of bytes copied, or -1 if > Integer.MAX_VALUE Throws:
-
NullPointerException
- if the input or output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
copyLarge
public static long copyLarge(InputStream input, OutputStream output) throws IOException
-
Copy bytes from a large (over 2GB)
InputStream
to anOutputStream
.This method buffers the input internally, so there is no need to use a
BufferedInputStream
. -
-
Parameters:
-
input
- theInputStream
to read from -
output
- theOutputStream
to write to
Returns:
- the number of bytes copied Throws:
-
NullPointerException
- if the input or output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.3
-
copy
public static void copy(InputStream input, Writer output) throws IOException
-
Copy bytes from an
InputStream
to chars on aWriter
using the default character encoding of the platform.This method buffers the input internally, so there is no need to use a
BufferedInputStream
.This method uses
InputStreamReader
. -
-
Parameters:
-
input
- theInputStream
to read from -
output
- theWriter
to write to
Throws:
-
NullPointerException
- if the input or output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
copy
public static void copy(InputStream input, Writer output, String encoding) throws IOException
-
Copy bytes from an
InputStream
to chars on aWriter
using the specified character encoding.This method buffers the input internally, so there is no need to use a
BufferedInputStream
.Character encoding names can be found at IANA.
This method uses
InputStreamReader
. -
-
Parameters:
-
input
- theInputStream
to read from -
output
- theWriter
to write to -
encoding
- the encoding to use, null means platform default
Throws:
-
NullPointerException
- if the input or output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
copy
public static int copy(Reader input, Writer output) throws IOException
-
Copy chars from a
Reader
to aWriter
.This method buffers the input internally, so there is no need to use a
BufferedReader
.Large streams (over 2GB) will return a chars copied value of
-1
after the copy has completed since the correct number of chars cannot be returned as an int. For large streams use thecopyLarge(Reader, Writer)
method. -
-
Parameters:
-
input
- theReader
to read from -
output
- theWriter
to write to
Returns:
- the number of characters copied, or -1 if > Integer.MAX_VALUE Throws:
-
NullPointerException
- if the input or output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
copyLarge
public static long copyLarge(Reader input, Writer output) throws IOException
-
Copy chars from a large (over 2GB)
Reader
to aWriter
.This method buffers the input internally, so there is no need to use a
BufferedReader
. -
-
Parameters:
-
input
- theReader
to read from -
output
- theWriter
to write to
Returns:
- the number of characters copied Throws:
-
NullPointerException
- if the input or output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.3
-
copy
public static void copy(Reader input, OutputStream output) throws IOException
-
Copy chars from a
Reader
to bytes on anOutputStream
using the default character encoding of the platform, and calling flush.This method buffers the input internally, so there is no need to use a
BufferedReader
.Due to the implementation of OutputStreamWriter, this method performs a flush.
This method uses
OutputStreamWriter
. -
-
Parameters:
-
input
- theReader
to read from -
output
- theOutputStream
to write to
Throws:
-
NullPointerException
- if the input or output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
copy
public static void copy(Reader input, OutputStream output, String encoding) throws IOException
-
Copy chars from a
Reader
to bytes on anOutputStream
using the specified character encoding, and calling flush.This method buffers the input internally, so there is no need to use a
BufferedReader
.Character encoding names can be found at IANA.
Due to the implementation of OutputStreamWriter, this method performs a flush.
This method uses
OutputStreamWriter
. -
-
Parameters:
-
input
- theReader
to read from -
output
- theOutputStream
to write to -
encoding
- the encoding to use, null means platform default
Throws:
-
NullPointerException
- if the input or output is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
5.contentEquals
contentEquals
public static boolean contentEquals(InputStream input1, InputStream input2) throws IOException
-
Compare the contents of two Streams to determine if they are equal or not.
This method buffers the input internally using
BufferedInputStream
if they are not already buffered. -
-
Parameters:
-
input1
- the first stream -
input2
- the second stream
Returns:
- true if the content of the streams are equal or they both don't exist, false otherwise Throws:
-
NullPointerException
- if either input is null -
IOException
- if an I/O error occurs
-
contentEquals
public static boolean contentEquals(Reader input1, Reader input2) throws IOException
-
Compare the contents of two Readers to determine if they are equal or not.
This method buffers the input internally using
BufferedReader
if they are not already buffered. -
-
Parameters:
-
input1
- the first reader -
input2
- the second reader
Returns:
- true if the content of the readers are equal or they both don't exist, false otherwise Throws:
-
NullPointerException
- if either input is null -
IOException
- if an I/O error occurs
Since:
- Commons IO 1.1
-
skip
public static long skip(InputStream input, long toSkip) throws IOException
-
Skip bytes from an input byte stream. This implementation guarantees that it will read as many bytes as possible before giving up; this may not always be the case for subclasses of
Reader
. -
-
Parameters:
-
input
- byte stream to skip -
toSkip
- number of bytes to skip.
Returns:
- number of bytes actually skipped. Throws:
-
IOException
- if there is a problem reading the file -
IllegalArgumentException
- if toSkip is negative
Since:
- Commons IO 2.0 See Also:
-
InputStream.skip(long)
-
skip
public static long skip(Reader input, long toSkip) throws IOException
-
Skip characters from an input character stream. This implementation guarantees that it will read as many characters as possible before giving up; this may not always be the case for subclasses of
Reader
. -
-
Parameters:
-
input
- character stream to skip -
toSkip
- number of characters to skip.
Returns:
- number of characters actually skipped. Throws:
-
IOException
- if there is a problem reading the file -
IllegalArgumentException
- if toSkip is negative
Since:
- Commons IO 2.0 See Also:
-
Reader.skip(long)
-
skipFully
public static void skipFully(InputStream input, long toSkip) throws IOException
-
Skip the requested number of bytes or fail if there are not enough left.
This allows for the possibility that
InputStream.skip(long)
may not skip as many bytes as requested (most likely because of reaching EOF). -
-
Parameters:
-
input
- stream to skip -
toSkip
- the number of bytes to skip
Throws:
-
IOException
- if there is a problem reading the file -
IllegalArgumentException
- if toSkip is negative -
EOFException
- if the number of bytes skipped was incorrect
Since:
- Commons IO 2.0 See Also:
-
InputStream.skip(long)
-
skipFully
public static void skipFully(Reader input, long toSkip) throws IOException
-
Skip the requested number of characters or fail if there are not enough left.
This allows for the possibility that
Reader.skip(long)
may not skip as many characters as requested (most likely because of reaching EOF). -
-
Parameters:
-
input
- stream to skip -
toSkip
- the number of characters to skip
Throws:
-
IOException
- if there is a problem reading the file -
IllegalArgumentException
- if toSkip is negative -
EOFException
- if the number of characters skipped was incorrect
Since:
- Commons IO 2.0 See Also:
-
Reader.skip(long)
-