blob: f3dc408bdf69ea982c67e8d017ffe22e919afce6 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Copyright 2002-2004 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<document>
<properties>
<title>Commons IO - Users guide</title>
<author email="commons-dev@jakarta.apache.org">Commons Documentation Team</author>
</properties>
<body>
<section name="io.*">
<p>The top level of the IO component contains two Utils, FileUtils and IOUtil that are of use to all programmers. It also contains an EndianUtils class which is slightly more specialised.</p>
<p>IOUtil is generally concerned with copying between input and output and converting between Strings and byte[]. </p>
<p>FileUtil is obviously concerned with handling lots of nice things to do with Files. Copying, removing, enquiring as to meta-data etc.</p>
<p>EndianUtils helps developers to work between Big/Little Endian files. </p>
<p>The top level also contains two Proxy classes, ProxyInputStream and ProxyOutputStream. These exist because FilterInputStream and FilterOutputStream obscure their implementation by switching around the methods which they call. The Proxy classes are more honest, calling the same method as was called on themselves. This makes implementing a Proxy/Filter a lot easier. </p>
</section>
<section name="io.filefilter.*">
<p>The filefilter subpackage contains a small set of filters, perhaps more importantly they also contain an interface framework which merges the java.io.FilenameFilter and java.io.FileFilter interfaces together with Lang's Predicate interface. The FileFilterUtils class provides a facade to the PredicateUtils allowing such things as an AndFileFilter to be handled by Lang's Predicates. </p>
</section>
<section name="io.output.*">
<p>IO contains an output package containing Writers and OutputStreams. HexDump, FormattedWriter, TeeOutputStream, LockableFileWriter, DemuxOutputStream and CountingOutputStream are currently in the output package.</p>
</section>
<section name="io.input.*">
<p>IO contains an input package containing Readers and InputStreams. ClassLoaderObjectInputStream, DemuxInputStream, SwappedDataInputStream and CountingInputStream are the current inhabitants of input.</p>
</section>
<section name="Next version of IO">
<p>IO 1.1 will be the next release for this component, consisting of various bugfixes concerning the 1.0 release. </p>
</section>
</body>
</document>