# Package org.apache.commons.io

Provides classes for working with streams, readers, writers and files.

See: Description

- Class Summary
  Class | Description
  --- | ---
  ByteBuffers | Manufactures `ByteBuffer` instances.
  ByteOrderMark | Byte Order Mark (BOM) representation.
  ByteOrderParser | Converts Strings to `ByteOrder` instances.
  Charsets | Charsets required of every implementation of the Java platform.
  CloseableURLConnection | Delegates to a URLConnection while implementing AutoCloseable.
  EndianUtils | Helps with reading and writing primitive numeric types (`short`, `int`, `long`, `float`, and `double`) that are encoded in little endian using two's complement or unsigned representations.
  FileCleaningTracker | Keeps track of files awaiting deletion, and deletes them when an associated marker object is reclaimed by the garbage collector.
  FileCleaningTracker.Tracker | Inner class which acts as the reference for a file pending deletion.
  FileDeleteStrategy | Strategy for deleting files.
  FileDeleteStrategy.ForceFileDeleteStrategy | Force file deletion strategy.
  FilenameUtils | General file name and file path manipulation utilities.
  FileUtils | General file manipulation utilities.
  HexDump | Dumps data in hexadecimal format.
  IO | Component-wide operations on Apache Commons IO.
  IORandomAccessFile | Extends `RandomAccessFile` to provide access to the `File` and `mode` passed on construction.
  IOUtils | General IO stream manipulation utilities.
  LineIterator | An Iterator over the lines in a `Reader`.
  RandomAccessFiles | Works with `RandomAccessFile`.
  StreamIterator<E> | Wraps and presents a `Stream` as a `AutoCloseable` `Iterator` resource that automatically closes itself when reaching the end of stream.
  ThreadMonitor | Monitors a thread, interrupting it if it reaches the specified timeout.
  ThreadUtils | Helps work with threads.
  UncheckedIOExceptions | Helps use lambdas that throw `IOException` rethrow as `UncheckedIOException`.

- Enum Summary
  Enum | Description
  --- | ---
  FileSystem | Abstracts an OS' file system details, currently supporting the single use case of converting a file name String to a legal file name with `FileSystem.toLegalFileName(String, char)`.
  IOCase | Enumeration of IO case sensitivity.
  RandomAccessFileMode | Enumerates access modes for `RandomAccessFile` with factory methods.
  StandardLineSeparator | Enumerates standard line separators: `StandardLineSeparator.CR`, `StandardLineSeparator.CRLF`, `StandardLineSeparator.LF`.

- Exception Summary
  Exception | Description
  --- | ---
  DirectoryWalker.CancelException | CancelException is thrown in DirectoryWalker to cancel the current processing.
  FileExistsException | Indicates that a file already exists.
  IOExceptionList | An IOException based on a list of Throwable causes.
  IOIndexedException | A IOException associated with a source index.
  TaggedIOException | An `IOException` decorator that adds a serializable tag to the wrapped exception.

## Package org.apache.commons.io Description

Provides classes for working with streams, readers, writers and files. The most commonly used classes are described here:

IOUtils is the most frequently used class. It provides operations to read, write, copy and close streams.

FileUtils provides operations based around the JDK File class. These include reading, writing, copying, comparing and deleting.

FilenameUtils provides utilities based on filenames. This utility class manipulates file names without using File objects. It aims to simplify the transition between Windows and Unix. Before using this class however, you should consider whether you should be using File objects.

FileSystemUtils allows access to the filing system in ways the JDK does not support. At present this allows you to get the free space on a drive.

EndianUtils swaps data between Big-Endian and Little-Endian formats.