# Class IOTools

java.lang.Object
org.apache.catalina.util.IOTools

public class IOTools extends Object
Contains commonly needed I/O-related methods.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final int`
  `DEFAULT_BUFFER_SIZE`
  The default buffer size (4 KiB) used for I/O operations.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `flow(InputStream is, OutputStream os)`
  Read input from input stream and write it to output stream until there is no more input from input stream using a new buffer of the default size (4 KiB).
  `static void`
  `flow(Reader reader, Writer writer)`
  Read input from reader and write it to writer until there is no more input from reader.
  `static void`
  `flow(Reader reader, Writer writer, char[] buf)`
  Read input from reader and write it to writer until there is no more input from reader.
  `static int`
  `readFully(InputStream is, byte[] buf)`
  Read until EOF or the buffer is filled.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### DEFAULT_BUFFER_SIZE

    protected static final int DEFAULT_BUFFER_SIZE
    The default buffer size (4 KiB) used for I/O operations.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### flow

    public static void flow(Reader reader, Writer writer, char[] buf) throws IOException
    Read input from reader and write it to writer until there is no more input from reader.
    Parameters:
      `reader` - the reader to read from.
      `writer` - the writer to write to.
      `buf` - the char array to use as a buffer
    Throws:
      `IOException` - IO error

  - ### flow

    public static void flow(Reader reader, Writer writer) throws IOException
    Read input from reader and write it to writer until there is no more input from reader.
    Parameters:
      `reader` - the reader to read from.
      `writer` - the writer to write to.
    Throws:
      `IOException` - IO error
    See Also:
      - `flow(Reader, Writer, char[])`

  - ### flow

    public static void flow(InputStream is, OutputStream os) throws IOException
    Read input from input stream and write it to output stream until there is no more input from input stream using a new buffer of the default size (4 KiB).
    Parameters:
      `is` - input stream the input stream to read from.
      `os` - output stream the output stream to write to.
    Throws:
      `IOException` - If an I/O error occurs during the copy

  - ### readFully

    public static int readFully(InputStream is, byte[] buf) throws IOException
    Read until EOF or the buffer is filled.
    Parameters:
      `is` - The source to read from
      `buf` - The buffer to write to
    Returns:
      The number of bytes read
    Throws:
      `IOException` - If an I/O error occurs during the read