Apache Commons logo Commons IO

Apache Commons IO

Apache Commons IO is a library of utilities to assist with developing IO functionality.

Main areas include:

  • io - This package defines utility classes for working with streams, readers, writers and files.
  • build - This package provides classes to implement IO builders.
  • charset - This package provides classes to work with code from java.nio.charset.
  • comparator - This package provides various Comparator implementations for Files and Paths.
  • file - This package provides extensions in the realm of java.nio.file.
  • file.attribute - This package provides help using java.nio.file.attribute types.
  • file SPI - This package provides extensions in the realm of java.nio.file.spi.
  • filefilter - This package defines an interface (IOFileFilter) that combines both FileFilter and FilenameFilter.
  • function - This package defines IO-only related functional interfaces for lambda expressions and method references.
  • input - This package provides implementations of input classes, such as InputStream and Reader.
  • input.buffer - This package provides implementations of buffered input classes, such as CircularBufferInputStream and PeekableInputStream.
  • monitor - This package provides a component for monitoring file system events (directory and file create, update and delete events).
  • output - This package provides implementations of output classes, such as OutputStream and Writer.
  • serialization - This package provides a framework for controlling the deserialization of classes.


Latest Release (Java 8 and up)

Commons IO requires a minimum of Java 8 - Download now .

View the Release Notes and Javadoc API documents .

Previous Releases

See the download archive and Javadoc archive .

The Java platform requirements are:

  • Version 2.7 and up requires Java 8 or above.
  • Version 2.6 requires Java 7 or above.
  • Version 2.3 through 2.5 requires Java 6 or above.
  • Version 2.2 requires Java 5 or above.


The commons mailing lists act as the main support forum. The user list is suitable for most library usage queries. The dev list is intended for the development discussion. Please remember that the lists are shared between all commons components, so prefix your email by [io].

Issues may be reported via ASF JIRA . Please read the instructions carefully to submit a useful bug report or enhancement request.