Java libraries for streams.

The io-tools project is a set of libraries written in java to ease the task of using streams.

EasyStream easystream link

Set of general purpose utilities for dealing with streams. You can use this library for :

  • 'Convert' an OutputStream into an InputStream and Writer into a Reader.
  • Gather some statistics on your streams: bit rate, total number of bytes read/written.
  • Stream buffering: InputStream are read once classes. Here is a stream wrapper that allows you to rewind the Inputstream.
  • Stream wiring: While reading the data from an InputStream "tee" it to supplied OutputStream(s) or write data to multiple OutputStream(s) at the same time.

EasyStream is a natural extension of Apache commons-io , providing advanced solutions to some common but not trivial problem. Focus is on performance and low memory footprint.

Please visit the project page for tutorials, guides,forums and more detailed informations.

WazFormat WazFormat link

This library is a format identification software that integrates a native format identification engine with droid and in future will integrate mime-utils and apache tika.

The main goal of this library is to perform a format identification on an InputStream, in a way that is possible to know its content type and "preserve" the data in it for further processing (the data is eventually buffered to memory or to disk in a transparent way).


  • Supports more than 60 file formats.
  • Nested detection: it can detect what is inside a bzip2 stream or a PKCS#7 document.
  • Result of identification is an Enum. Most of identification libraries return a string that must be further parsed by the calling software.

Due to a wrong choice of the inner detection library WazFormat has some serious performance issue. Though it is currently used in production in many projects, users should try to limit the number of formats detected.

Please visit the project page for tutorials, guides, forums and more detailed informations.