Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.io
Class IOUtils

    java.lang.Object
      org.apache.commons.io.IOUtils

    public class IOUtils

extends Object

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 stream
- 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.

Origin of code: Excalibur.

Version:
  $Id: IOUtils.java 1091653 2011-04-13 05:22:45Z ggregory $
Author:
  Peter Donald, Jeff Turner, Matthew Hawthorne, Stephen Colebourne, Gareth Davis, Ian Springer, Sandy McArthur

Field Summary
`static char` | `DIR_SEPARATOR` The system directory separator character.
`static char` | `DIR_SEPARATOR_UNIX` The Unix directory separator character.
`static char` | `DIR_SEPARATOR_WINDOWS` The Windows directory separator character.
`static String` | `LINE_SEPARATOR` The system line separator string.
`static String` | `LINE_SEPARATOR_UNIX` The Unix line separator string.
`static String` | `LINE_SEPARATOR_WINDOWS` The Windows line separator string.

Constructor Summary
`IOUtils()` Instances should NOT be constructed in standard programming.

Method Summary
`static void` | `closeQuietly(Closeable closeable)` Unconditionally close a `Closeable`.
`static void` | `closeQuietly(InputStream input)` Unconditionally close an `InputStream`.
`static void` | `closeQuietly(OutputStream output)` Unconditionally close an `OutputStream`.
`static void` | `closeQuietly(Reader input)` Unconditionally close an `Reader`.
`static void` | `closeQuietly(Socket sock)` Unconditionally close a `Socket`.
`static void` | `closeQuietly(Writer output)` Unconditionally close a `Writer`.
`static boolean` | `contentEquals(InputStream input1, InputStream input2)` Compare the contents of two Streams to determine if they are equal or not.
`static boolean` | `contentEquals(Reader input1, Reader input2)` Compare the contents of two Readers to determine if they are equal or not.
`static int` | `copy(InputStream input, OutputStream output)` Copy bytes from an `InputStream` to an `OutputStream`.
`static void` | `copy(InputStream input, Writer output)` Copy bytes from an `InputStream` to chars on a `Writer` using the default character encoding of the platform.
`static void` | `copy(InputStream input, Writer output, String encoding)` Copy bytes from an `InputStream` to chars on a `Writer` using the specified character encoding.
`static void` | `copy(Reader input, OutputStream output)` Copy chars from a `Reader` to bytes on an `OutputStream` using the default character encoding of the platform, and calling flush.
`static void` | `copy(Reader input, OutputStream output, String encoding)` Copy chars from a `Reader` to bytes on an `OutputStream` using the specified character encoding, and calling flush.
`static int` | `copy(Reader input, Writer output)` Copy chars from a `Reader` to a `Writer`.
`static long` | `copyLarge(InputStream input, OutputStream output)` Copy bytes from a large (over 2GB) `InputStream` to an `OutputStream`.
`static long` | `copyLarge(Reader input, Writer output)` Copy chars from a large (over 2GB) `Reader` to a `Writer`.
`static LineIterator` | `lineIterator(InputStream input, String encoding)` Return an Iterator for the lines in an `InputStream`, using the character encoding specified (or default encoding if null).
`static LineIterator` | `lineIterator(Reader reader)` Return an Iterator for the lines in a `Reader`.
`static List<String>` | `readLines(InputStream input)` Get the contents of an `InputStream` as a list of Strings, one entry per line, using the default character encoding of the platform.
`static List<String>` | `readLines(InputStream input, String encoding)` Get the contents of an `InputStream` as a list of Strings, one entry per line, using the specified character encoding.
`static List<String>` | `readLines(Reader input)` Get the contents of a `Reader` as a list of Strings, one entry per line.
`static long` | `skip(InputStream input, long toSkip)` Skip bytes from an input byte stream.
`static long` | `skip(Reader input, long toSkip)` Skip characters from an input character stream.
`static void` | `skipFully(InputStream input, long toSkip)` Skip the requested number of bytes or fail if there are not enough left.
`static void` | `skipFully(Reader input, long toSkip)` Skip the requested number of characters or fail if there are not enough left.
`static InputStream` | `toBufferedInputStream(InputStream input)` Fetches entire contents of an `InputStream` and represent same data as result InputStream.
`static byte[]` | `toByteArray(InputStream input)` Get the contents of an `InputStream` as a `byte[]`.
`static byte[]` | `toByteArray(InputStream input, int size)` Get the contents of an `InputStream` as a `byte[]`.
`static byte[]` | `toByteArray(InputStream input, long size)` Get contents of an `InputStream` as a `byte[]`.
`static byte[]` | `toByteArray(Reader input)` Get the contents of a `Reader` as a `byte[]` using the default character encoding of the platform.
`static byte[]` | `toByteArray(Reader input, String encoding)` Get the contents of a `Reader` as a `byte[]` using the specified character encoding.
`static byte[]` | `toByteArray(String input)` Deprecated. Use `String.getBytes()`
`static char[]` | `toCharArray(InputStream is)` Get the contents of an `InputStream` as a character array using the default character encoding of the platform.
`static char[]` | `toCharArray(InputStream is, String encoding)` Get the contents of an `InputStream` as a character array using the specified character encoding.
`static char[]` | `toCharArray(Reader input)` Get the contents of a `Reader` as a character array.
`static InputStream` | `toInputStream(CharSequence input)` Convert the specified CharSequence to an input stream, encoded as bytes using the default character encoding of the platform.
`static InputStream` | `toInputStream(CharSequence input, String encoding)` Convert the specified CharSequence to an input stream, encoded as bytes using the specified character encoding.
`static InputStream` | `toInputStream(String input)` Convert the specified string to an input stream, encoded as bytes using the default character encoding of the platform.
`static InputStream` | `toInputStream(String input, String encoding)` Convert the specified string to an input stream, encoded as bytes using the specified character encoding.
`static String` | `toString(byte[] input)` Deprecated. Use `String.String(byte[])`
`static String` | `toString(byte[] input, String encoding)` Deprecated. Use `String.String(byte[],String)`
`static String` | `toString(InputStream input)` Get the contents of an `InputStream` as a String using the default character encoding of the platform.
`static String` | `toString(InputStream input, String encoding)` Get the contents of an `InputStream` as a String using the specified character encoding.
`static String` | `toString(Reader input)` Get the contents of a `Reader` as a String.
`static String` | `toString(URI uri)` Gets the contents at the given URI.
`static String` | `toString(URI uri, String encoding)` Gets the contents at the given URI.
`static String` | `toString(URL url)` Gets the contents at the given URL.
`static String` | `toString(URL url, String encoding)` Gets the contents at the given URL.
`static void` | `write(byte[] data, OutputStream output)` Writes bytes from a `byte[]` to an `OutputStream`.
`static void` | `write(byte[] data, Writer output)` Writes bytes from a `byte[]` to chars on a `Writer` using the default character encoding of the platform.
`static void` | `write(byte[] data, Writer output, String encoding)` Writes bytes from a `byte[]` to chars on a `Writer` using the specified character encoding.
`static void` | `write(char[] data, OutputStream output)` Writes chars from a `char[]` to bytes on an `OutputStream`.
`static void` | `write(char[] data, OutputStream output, String encoding)` Writes chars from a `char[]` to bytes on an `OutputStream` using the specified character encoding.
`static void` | `write(char[] data, Writer output)` Writes chars from a `char[]` to a `Writer` using the default character encoding of the platform.
`static void` | `write(CharSequence data, OutputStream output)` Writes chars from a `CharSequence` to bytes on an `OutputStream` using the default character encoding of the platform.
`static void` | `write(CharSequence data, OutputStream output, String encoding)` Writes chars from a `CharSequence` to bytes on an `OutputStream` using the specified character encoding.
`static void` | `write(CharSequence data, Writer output)` Writes chars from a `CharSequence` to a `Writer`.
`static void` | `write(StringBuffer data, OutputStream output)` Deprecated. replaced by write(CharSequence, OutputStream)
`static void` | `write(StringBuffer data, OutputStream output, String encoding)` Deprecated. replaced by write(CharSequence, OutputStream, String)
`static void` | `write(StringBuffer data, Writer output)` Deprecated. replaced by write(CharSequence, Writer)
`static void` | `write(String data, OutputStream output)` Writes chars from a `String` to bytes on an `OutputStream` using the default character encoding of the platform.
`static void` | `write(String data, OutputStream output, String encoding)` Writes chars from a `String` to bytes on an `OutputStream` using the specified character encoding.
`static void` | `write(String data, Writer output)` Writes chars from a `String` to a `Writer`.
`static void` | `writeLines(Collection<?> lines, String lineEnding, OutputStream output)` Writes the `toString()` value of each item in a collection to an `OutputStream` line by line, using the default character encoding of the platform and the specified line ending.
`static void` | `writeLines(Collection<?> lines, String lineEnding, OutputStream output, String encoding)` Writes the `toString()` value of each item in a collection to an `OutputStream` line by line, using the specified character encoding and the specified line ending.
`static void` | `writeLines(Collection<?> lines, String lineEnding, Writer writer)` Writes the `toString()` value of each item in a collection to a `Writer` line by line, using the specified line ending.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DIR_SEPARATOR_UNIX

    public static final char DIR_SEPARATOR_UNIX

  The Unix directory separator character.

  See Also:
    Constant Field Values

### DIR_SEPARATOR_WINDOWS

    public static final char DIR_SEPARATOR_WINDOWS

  The Windows directory separator character.

  See Also:
    Constant Field Values

### DIR_SEPARATOR

    public static final char DIR_SEPARATOR

  The system directory separator character.

### LINE_SEPARATOR_UNIX

    public static final String LINE_SEPARATOR_UNIX

  The Unix line separator string.

  See Also:
    Constant Field Values

### LINE_SEPARATOR_WINDOWS

    public static final String LINE_SEPARATOR_WINDOWS

  The Windows line separator string.

  See Also:
    Constant Field Values

### LINE_SEPARATOR

    public static final String LINE_SEPARATOR

  The system line separator string.

Constructor Detail

### IOUtils

    public IOUtils()

  Instances should NOT be constructed in standard programming.

Method Detail

### 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

### 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.
  It can be used in favor of `toByteArray(InputStream)`, since it avoids unnecessary allocation and copy of byte[].
  This method buffers the input internally, so there is no need to use a `BufferedInputStream`.

  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 a `byte[]`.

  This method buffers the input internally, so there is no need to use a `BufferedInputStream`.

  Parameters:
    `input` - the `InputStream` 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(InputStream input,
                                     long size)
                              throws IOException

  Get contents of an `InputStream` as a `byte[]`. Use this method instead of `toByteArray(InputStream)` when `InputStream` size is known. NOTE: the method checks that the length can safely be cast to an int without truncation before using `toByteArray(java.io.InputStream, int)` to read into the byte array. (Arrays can have no more than Integer.MAX_VALUE entries anyway)

  Parameters:
    `input` - the `InputStream` to read from
    `size` - the size of `InputStream`
  Returns:
    the requested byte array
  Throws:
    `IOException` - if an I/O error occurs or `InputStream` size differ from parameter size
    `IllegalArgumentException` - if size is less than zero or size is greater than Integer.MAX_VALUE
  Since:
    Commons IO 2.1
  See Also:
    `toByteArray(java.io.InputStream, int)`

### toByteArray

    public static byte[] toByteArray(InputStream input,
                                     int size)
                              throws IOException

  Get the contents of an `InputStream` as a `byte[]`. Use this method instead of `toByteArray(InputStream)` when `InputStream` size is known

  Parameters:
    `input` - the `InputStream` to read from
    `size` - the size of `InputStream`
  Returns:
    the requested byte array
  Throws:
    `IOException` - if an I/O error occurs or `InputStream` size differ from parameter size
    `IllegalArgumentException` - if size is less than zero
  Since:
    Commons IO 2.1

### toByteArray

    public static byte[] toByteArray(Reader input)
                              throws IOException

  Get the contents of a `Reader` as a `byte[]` 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` - the `Reader` 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 a `byte[]` 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` - the `Reader` 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 a `byte[]` using the default character encoding of the platform.

  This is the same as `String.getBytes()`.

  Parameters:
    `input` - the `String` 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` - the `InputStream` 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` - the `InputStream` 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` - the `Reader` 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` - the `InputStream` 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` - the `InputStream` 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` - the `Reader` 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(URI uri)
                           throws IOException

  Gets the contents at the given URI.

  Parameters:
    `uri` - The URI source.
  Returns:
    The contents of the URL as a String.
  Throws:
    `IOException` - if an I/O exception occurs.
  Since:
    2.1.

### toString

    public static String toString(URI uri,
                                  String encoding)
                           throws IOException

  Gets the contents at the given URI.

  Parameters:
    `uri` - The URI source.
    `encoding` - The encoding name for the URL contents.
  Returns:
    The contents of the URL as a String.
  Throws:
    `IOException` - if an I/O exception occurs.
  Since:
    2.1.

### toString

    public static String toString(URL url)
                           throws IOException

  Gets the contents at the given URL.

  Parameters:
    `url` - The URL source.
  Returns:
    The contents of the URL as a String.
  Throws:
    `IOException` - if an I/O exception occurs.
  Since:
    2.1.

### toString

    public static String toString(URL url,
                                  String encoding)
                           throws IOException

  Gets the contents at the given URL.

  Parameters:
    `url` - The URL source.
    `encoding` - The encoding name for the URL contents.
  Returns:
    The contents of the URL as a String.
  Throws:
    `IOException` - if an I/O exception occurs.
  Since:
    2.1.

### 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)

### 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` - the `InputStream` 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` - the `InputStream` 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` - the `Reader` 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 open `Reader` 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 calling `LineIterator.close()` or `LineIterator.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` - the `Reader` 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 open `InputStream` 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 calling `LineIterator.close()` or `LineIterator.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` - the `InputStream` 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

### write

    public static void write(byte[] data,
                             OutputStream output)
                      throws IOException

  Writes bytes from a `byte[]` to an `OutputStream`.

  Parameters:
    `data` - the byte array to write, do not modify during output, null ignored
    `output` - the `OutputStream` 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 a `Writer` 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` - the `Writer` 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 a `Writer` 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` - the `Writer` 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 a `Writer` using the default character encoding of the platform.

  Parameters:
    `data` - the char array to write, do not modify during output, null ignored
    `output` - the `Writer` 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 an `OutputStream`.

  This method uses `String.String(char[])` and `String.getBytes()`.

  Parameters:
    `data` - the char array to write, do not modify during output, null ignored
    `output` - the `OutputStream` 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 an `OutputStream` using the specified character encoding.

  Character encoding names can be found at IANA.

  This method uses `String.String(char[])` and `String.getBytes(String)`.

  Parameters:
    `data` - the char array to write, do not modify during output, null ignored
    `output` - the `OutputStream` 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 a `Writer`.

  Parameters:
    `data` - the `CharSequence` to write, null ignored
    `output` - the `Writer` 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 an `OutputStream` using the default character encoding of the platform.

  This method uses `String.getBytes()`.

  Parameters:
    `data` - the `CharSequence` to write, null ignored
    `output` - the `OutputStream` 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 an `OutputStream` using the specified character encoding.

  Character encoding names can be found at IANA.

  This method uses `String.getBytes(String)`.

  Parameters:
    `data` - the `CharSequence` to write, null ignored
    `output` - the `OutputStream` 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 a `Writer`.

  Parameters:
    `data` - the `String` to write, null ignored
    `output` - the `Writer` 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 an `OutputStream` using the default character encoding of the platform.

  This method uses `String.getBytes()`.

  Parameters:
    `data` - the `String` to write, null ignored
    `output` - the `OutputStream` 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 an `OutputStream` using the specified character encoding.

  Character encoding names can be found at IANA.

  This method uses `String.getBytes(String)`.

  Parameters:
    `data` - the `String` to write, null ignored
    `output` - the `OutputStream` 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 a `Writer`.

  Parameters:
    `data` - the `StringBuffer` to write, null ignored
    `output` - the `Writer` 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 an `OutputStream` using the default character encoding of the platform.

  This method uses `String.getBytes()`.

  Parameters:
    `data` - the `StringBuffer` to write, null ignored
    `output` - the `OutputStream` 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 an `OutputStream` using the specified character encoding.

  Character encoding names can be found at IANA.

  This method uses `String.getBytes(String)`.

  Parameters:
    `data` - the `StringBuffer` to write, null ignored
    `output` - the `OutputStream` 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 an `OutputStream` 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` - the `OutputStream` 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 an `OutputStream` 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` - the `OutputStream` 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 a `Writer` 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` - the `Writer` 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 an `OutputStream`.

  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 the `copyLarge(InputStream, OutputStream)` method.

  Parameters:
    `input` - the `InputStream` to read from
    `output` - the `OutputStream` 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 an `OutputStream`.

  This method buffers the input internally, so there is no need to use a `BufferedInputStream`.

  Parameters:
    `input` - the `InputStream` to read from
    `output` - the `OutputStream` 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 a `Writer` 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` - the `InputStream` to read from
    `output` - the `Writer` 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 a `Writer` 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` - the `InputStream` to read from
    `output` - the `Writer` 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 a `Writer`.

  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 the `copyLarge(Reader, Writer)` method.

  Parameters:
    `input` - the `Reader` to read from
    `output` - the `Writer` 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 a `Writer`.

  This method buffers the input internally, so there is no need to use a `BufferedReader`.

  Parameters:
    `input` - the `Reader` to read from
    `output` - the `Writer` 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 an `OutputStream` 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` - the `Reader` to read from
    `output` - the `OutputStream` 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 an `OutputStream` 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` - the `Reader` to read from
    `output` - the `OutputStream` 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

### 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)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2011 The Apache Software Foundation. All Rights Reserved.