@ParametersAreNonnullByDefault

# Package com.google.common.io

This package contains utility methods and classes for working with Java I/O; for example input streams, output streams, readers, writers, and files.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  ByteArrayDataInput | An extension of `DataInput` for reading from in-memory byte arrays; its methods offer identical functionality but do not throw `IOException`.
  ByteArrayDataOutput | An extension of `DataOutput` for writing to in-memory byte arrays; its methods offer identical functionality but do not throw `IOException`.
  ByteProcessor<T> | A callback interface to process bytes from a stream.
  InputSupplier<T> | Deprecated For `InputSupplier<? extends InputStream>`, use `ByteSource` instead.
  LineProcessor<T> | A callback to be used with the streaming `readLines` methods.
  OutputSupplier<T> | Deprecated For `OutputSupplier<? extends OutputStream>`, use `ByteSink` instead.

- Class Summary
  Class | Description
  --- | ---
  BaseEncoding | A binary encoding scheme for reversibly translating between byte sequences and printable ASCII strings.
  ByteSink | A destination to which bytes can be written, such as a file.
  ByteSource | A readable source of bytes, such as a file.
  ByteStreams | Provides utility methods for working with byte arrays and I/O streams.
  CharSink | A destination to which characters can be written, such as a text file.
  CharSource | A readable source of characters, such as a text file.
  CharStreams | Provides utility methods for working with character streams.
  Closeables | Utility methods for working with `Closeable` objects.
  Closer | A `Closeable` that collects `Closeable` resources and closes them all when it is closed.
  CountingInputStream | An `InputStream` that counts the number of bytes read.
  CountingOutputStream | An OutputStream that counts the number of bytes written.
  FileBackedOutputStream | An `OutputStream` that starts buffering to a byte array, but switches to file buffering once the data reaches a configurable size.
  Files | Provides utility methods for working with files.
  Flushables | Utility methods for working with `Flushable` objects.
  LineReader | A class for reading lines of text.
  LittleEndianDataInputStream | An implementation of `DataInput` that uses little-endian byte ordering for reading `short`, `int`, `float`, `double`, and `long` values.
  LittleEndianDataOutputStream | An implementation of `DataOutput` that uses little-endian byte ordering for writing `char`, `short`, `int`, `float`, `double`, and `long` values.
  PatternFilenameFilter | File name filter that only accepts files matching a regular expression.
  Resources | Provides utility methods for working with resources in the classpath.

- Enum Summary
  Enum | Description
  --- | ---
  FileWriteMode | Modes for opening a file for writing.

- Exception Summary
  Exception | Description
  --- | ---
  BaseEncoding.DecodingException | Exception indicating invalid base-encoded input encountered while decoding.

## Package com.google.common.io Description

This package contains utility methods and classes for working with Java I/O; for example input streams, output streams, readers, writers, and files.

At the core of this package are the Source/Sink types: `ByteSource`, `CharSource`, `ByteSink` and `CharSink`. They are factories for I/O streams that provide many convenience methods that handle both opening and closing streams for you.

This package is a part of the open-source Guava libraries. For more information on Sources and Sinks as well as other features of this package, see I/O Explained on the Guava wiki.