# Package org.apache.commons.io

This package defines utility classes for working with streams, readers, writers and files.

See: Description

Class Summary
ByteOrderMark: Byte Order Mark (BOM) representation - see `BOMInputStream`.
ByteOrderParser: Converts Strings to `ByteOrder` instances.
Charsets: Charsets required of every implementation of the Java platform.
CopyUtils: Deprecated Use IOUtils.
DirectoryWalker<T>: Abstract class that walks through a directory hierarchy and provides subclasses with convenient hooks to add specific behaviour.
EndianUtils: Utility code for dealing with different endian systems.
FileCleaner: Deprecated Use `FileCleaningTracker`
FileCleaningTracker: Keeps track of files awaiting deletion, and deletes them when an associated marker object is reclaimed by the garbage collector.
FileDeleteStrategy: Strategy for deleting files.
FilenameUtils: General filename and filepath manipulation utilities.
FileSystemUtils: Deprecated As of 2.6 deprecated without replacement.
FileUtils: General file manipulation utilities.
HexDump: Dumps data in hexadecimal format.
IOUtils: General IO stream manipulation utilities.
LineIterator: An Iterator over the lines in a `Reader`.

Enum Summary
IOCase: Enumeration of IO case sensitivity.

Exception Summary
DirectoryWalker.CancelException: CancelException is thrown in DirectoryWalker to cancel the current processing.
FileExistsException: Indicates that a file already exists.
IOExceptionWithCause: Deprecated (since 2.5) use `IOException` instead
TaggedIOException: An `IOException` decorator that adds a serializable tag to the wrapped exception.

## Package org.apache.commons.io Description

This package defines utility 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 filenames 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.