Apache Commons logo Commons IO

Release Notes

Release History

Version Date Description
2.5 2014-??-?? New features and bug fixes.
2.4 2012-06-12 New features and bug fixes.
2.3 2012-April-10 New features and bug fixes.
2.2 2012-March-26 New features and bug fixes.
2.1 2011-Sep-28 New features and bug fixes.
2.0.1 2010-Dec-26  
2.0 2010-Oct-18  
1.4 2008-Jan-21  
1.3.2 2007-Jul-02 Bug fixes.

Release 2.5 - 2014-??-??

Type Changes By
add Add API IOUtils.closeQuietly(Closeable...) Fixes IO-426. ggregory
fix Javadoc fixes, mostly to appease 1.8.0 Fixes IO-424. Thanks to Ville Skyttä. ggregory
update Deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets Fixes IO-422. ggregory
add Readfully() That Returns A Byte Array Fixes IO-410. Thanks to BELUGA BEHR. sebb
add Overload IOUtils buffer methods to accept buffer size Fixes IO-395. Thanks to BELUGA BEHR. brentworden
fix FileUtils.sizeOfDirectory can throw IllegalArgumentException Fixes IO-389. Thanks to Austin Doupnik. sebb
fix FileUtils.sizeOfDirectoryAsBigInteger can overflow. Ensure that recursive calls all use BigInteger Fixes IO-390. sebb
add Chunked IO for large arrays. Added writeChunked(byte[], OutputStream) and writeChunked(char[] Writer) Added ChunkedOutputStream, ChunkedWriter Fixes IO-382. sebb
fix FileUtils.doCopyFile can potentially loop for ever Exit loop if no data to copy Fixes IO-385. sebb
fix FileUtils.doCopyFile caches the file size; needs to be documented Added Javadoc; show file lengths in exception message Fixes IO-383. sebb
update Convert IOCase to a Java 1.5+ Enumeration [N.B. this is binary compatible] Fixes IO-239. sebb
add Add Methods for Buffering Streams/Writers To IOUtils Added overloaded buffer() methods - see also IO-330 Fixes IO-233. sebb
add IOUtils#toBufferedOutputStream/toBufferedWriter to conditionally wrap the output Added overloaded buffer() methods - see also IO-233 Fixes IO-330. sebb
add Add FileUtils.copyInputStreamToFile API with option to leave the source open. See copyInputStreamToFile(final InputStream source, final File destination, boolean closeSource) Fixes IO-381. ggregory
fix FileUtils.copyInputStreamToFile should document it closes the input source Fixes IO-380. Thanks to claudio_ch. sebb
fix Tailer erroneously considers file as new. Fix to use file.lastModified() rather than System.currentTimeMillis() Fixes IO-279. sebb
fix CharSequenceInputStream#reset() behaves incorrectly in case when buffer size is not dividable by data size. Fix code so skip relates to the encoded bytes; reset now re-encodes the data up to the point of the mark Fixes IO-356. sebb
add CharSequenceInputStream - add tests for available() Fix code so it really does reflect a minimum available. Fixes IO-379. sebb
update getPrefixLength returns null if filename has leading slashes Javadoc: add examples to show correct behaviour; add unit tests Fixes IO-328. sebb
update FileUtils.listFilesAndDirs includes original dir in results even when it doesn't match filter Javadoc: clarify that original dir is included in the results Fixes IO-299. sebb
add Add ByteArrayOutputStream.toInputStream() Fixes IO-346. sebb
fix ClassLoaderObjectInputStream does not handle primitive typed members Fixes IO-368. sebb
add A constant for holding the BOM character (U+FEFF) Fixes IO-341. sebb
fix Deprecate all methods that use the default encoding Fixes IO-314. sebb
fix When a file is rotated, finish reading previous file prior to starting new one Fixes IO-338. sebb
fix Commons IO Tailer does not respect UTF-8 Charset. Fixes IO-354. sebb
fix What should happen in FileUtils.sizeOf[Directory] when an overflow takes place? Added Javadoc. Fixes IO-323. sebb
fix FileUtils.moveDirectory can produce misleading error message on failiure Fixes IO-372. sebb
update FilenameUtils.splitOnTokens(String text) check for '**' could be simplified Fixes IO-375. sebb
update WildcardFileFilter ctors should not use null to mean IOCase.SENSITIVE when delegating to other ctors Fixes IO-374. sebb
fix IOUtils.contentEquals* methods returns false if input1 == input2, should return true. Fixes IO-362. Thanks to mmadson, ggregory. ggregory
add Add API FileUtils.forceMkdirsParent(). Fixes IO-361. ggregory
add Add API Charsets.requiredCharsets(). Fixes IO-360. ggregory
add Add IOUtils.skip and skipFully(ReadableByteChannel, long). Fixes IO-359. Thanks to yukoba. ggregory
add Add IOUtils.read and readFully(ReadableByteChannel, ByteBuffer buffer). Fixes IO-358. Thanks to yukoba. ggregory
fix [Tailer] InterruptedException while the thread is sleeping is silently ignored Fixes IO-357. Thanks to mortenh. ggregory
add Add API IOUtils.copy(InputStream, OutputStream, int) Fixes IO-353. Thanks to ggregory. ggregory
add Add API with array offset and length argument to FileUtils.writeByteArrayToFile. Fixes IO-349. Thanks to scop. ggregory
fix Spelling fixes. Fixes IO-352. Thanks to scop. ggregory
add Missing information in IllegalArgumentException thrown by org.apache.commons.io.FileUtils#validateListFilesParameters. Fixes IO-348. Thanks to plcstpierre. ggregory
add Supply a hook method allowing Tailer actively determining stop condition. Fixes IO-345. Thanks to mkresse. ggregory

Release 2.4 - 2012-06-12

Type Changes By
fix org.apache.commons.io.comparator Javadoc is inconsistent with real code. Fixes IO-343. Thanks to igorlash. ggregory
fix Yottabyte (YB) incorrectly defined in FileUtils. Fixes IO-336. Thanks to rleavelle. ggregory
add Tailer locks file from deletion/rename on Windows. Fixes IO-269. Thanks to sebb. ggregory
fix Tailer erroneously considers file as new. Fixes IO-279. Thanks to Sergio Bossa, Chris Baron. sebb
fix Tailer#readLines - incorrect CR handling. Fixes IO-335. sebb
fix FileUtils.toURLs throws NPE for null parameter; document the behavior. Fixes IO-334. sebb
add Export OSGi packages at version 1.x in addition to 2.x. Fixes IO-333. Thanks to fmeschbe. ggregory
add Add XmlStreamReader support for UTF-32. Fixes IO-320. Thanks to ggregory. ggregory
add BOMInputStream wrongly detects UTF-32LE_BOM files as UTF-16LE_BOM files in method getBOM(). Fixes IO-331. Thanks to ggregory. ggregory
fix Improve tailer's reading performance. Fixes IO-332. Thanks to liangly. ggregory
fix Improve Tailer performance with buffered reads (see IO-332). Fixes IO-279. ggregory
fix FileUtils.writeLines uses unbuffered IO. Fixes IO-329. Thanks to tivv. ggregory
add Add byteCountToDisplaySize(BigInteger). Fixes IO-327. Thanks to ggregory. ggregory
add Add new FileUtils.sizeOf[Directory] APIs to return BigInteger. Fixes IO-326. Thanks to ggregory, kinow. ggregory
add Add IOUtils.toByteArray methods to work with URL and URI. Fixes IO-325. Thanks to raviprak. ggregory
add Add missing Charset sister APIs to method that take a String charset name. Fixes IO-324. Thanks to raviprak. ggregory
fix FileUtils.sizeOfDirectory follows symbolic links. Fixes IO-319. Thanks to raviprak. ggregory

Release 2.3 - 2012-April-10

Type Changes By
add Add and use class Charsets. Fixes IO-322. Thanks to ggregory. ggregory
add ByteOrderMark UTF_32LE is incorrect. Fixes IO-321. Thanks to ggregory. ggregory
add Add Charset sister APIs to method that take a String charset name. Fixes IO-318. Thanks to ggregory. ggregory

Release 2.2 - 2012-March-26

Type Changes By
add Add IOUTils.toBufferedReader(Reader) Fixes IO-313. Thanks to ggregory. ggregory
add Allow applications to provide buffer (or size) for copyLarge methods. Fixes IO-308. Thanks to Manoj Mokashi. sebb
fix IOUtils.read(InputStream/Reader) ignores the offset parameter Fixes IO-311. Thanks to Robert Muir. sebb
fix CharSequenceInputStream(CharSequence s, Charset charset, int bufferSize) ignores bufferSize Fixes IO-312. sebb
add New copyLarge() method in IOUtils that takes additional offset, length arguments Fixes IO-305. Thanks to Manoj Mokashi. sebb
fix FileUtils.moveDirectoryToDirectory removes source directory if destination is a sub-directory Fixes IO-300. sebb
fix ReaderInputStream#read(byte[] b, int off, int len) should check for valid parameters Fixes IO-307. sebb
add Use terabyte (TB), petabyte (PB) and exabyte (EB) in FileUtils.byteCountToDisplaySize(long size) Fixes IO-287. Thanks to Ron Kuris, Gary Gregory. bayard
fix ReaderInputStream#read(byte[] b, int off, int len) should always return 0 for length == 0 Fixes IO-306. sebb
add FileUtils.listFiles() doesn't return directories Fixes IO-173. Thanks to Marcos Vinícius da Silva. sebb
fix "FileUtils#deleteDirectoryOnExit(File)" does not work Fixes IO-276. Thanks to nkami. sebb
fix BoundedInputStream.read() treats max differently from BoundedInputStream.read(byte[]...) Fixes IO-273. Thanks to sebb. sebb
add CharSequenceInputStream to efficiently stream content of a CharSequence Fixes IO-297. Thanks to Oleg Kalnichevski. sebb
update ReaderInputStream optimization: more efficient reading of small chunks of data Fixes IO-296. Thanks to Oleg Kalnichevski. sebb
fix Various methods of class 'org.apache.commons.io.FileUtils' incorrectly suppress 'java.io.IOException' Fixes IO-298. Thanks to Christian Schulte. sebb
add The second constructor of Tailer class does not pass 'delay' to the third one Fixes IO-304. Thanks to liangly. ggregory
add TeeOutputStream does not call branch.close() when main.close() throws an exception Fixes IO-303. Thanks to fabian.barney. ggregory
add ArrayIndexOutOfBoundsException in BOMInputStream when reading a file without BOM multiple times Fixes IO-302. Thanks to jsteuerwald, detinho. ggregory
add Add IOUtils.closeQuietly(Selector) necessary Fixes IO-301. Thanks to kaykay.unique. ggregory
add IOUtils.closeQuietly() should take a ServerSocket as a parameter Fixes IO-292. Thanks to sebb. sebb
add Add read/readFully methods to IOUtils Fixes IO-290. Thanks to sebb. sebb
add Supply a ReversedLinesFileReader Fixes IO-288. Thanks to Georg Henzler. sebb
add Add new function FileUtils.directoryContains. Fixes IO-291. Thanks to ggregory. ggregory
add FileUtils.contentEquals and IOUtils.contentEquals - Add option to ignore "line endings" Added contentEqualsIgnoreEOL methods to both classes Fixes IO-275. Thanks to CJ Aspromgos. sebb

Release 2.1 - 2011-Sep-28

Type Changes By
add Use standard Maven directory layout Fixes IO-285. Thanks to ggregory. ggregory
add Add IOUtils API toString for URL and URI to get contents Fixes IO-284. Thanks to ggregory. ggregory
add Add API FileUtils.copyFile(File input, OutputStream output) Fixes IO-282. Thanks to ggregory. ggregory
fix Dubious use of mkdirs() return code Fixes IO-280. Thanks to sebb. sebb
fix ReaderInputStream enters infinite loop when it encounters an unmappable character Fixes IO-277.
fix FileUtils.moveFile() JavaDoc should specify FileExistsException thrown Fixes IO-264.
add FileAlterationObserver has no getter for FileFilter Fixes IO-262.
add Add FileUtils.getFile API with varargs parameter Fixes IO-261.
fix ClassLoaderObjectInputStream does not handle Proxy classes Fixes IO-260.
update FileAlterationMonitor.stop(boolean allowIntervalToFinish) Fixes IO-259.
add Add new APPEND parameter for writing string into files Fixes IO-182.
fix Tailer returning partial lines when reaching EOF before EOL Fixes IO-274. Thanks to Frank Grimes. sebb
fix FileUtils.copyFile() throws IOException when copying large files to a shared directory (on Windows) Fixes IO-266. Thanks to Igor Smereka. sebb
fix FileSystemUtils.freeSpaceKb throws exception for Windows volumes with no visible files. Improve coverage by also looking for hidden files. Fixes IO-263. Thanks to Gil Adam. sebb
add Add new read method "toByteArray" to handle InputStream with known size. Fixes IO-251. Thanks to Marco Albini. sebb

Release 2.0.1 - 2010-Dec-26

Type Changes By
update TODO: Convert RELEASE-NOTES.txt from 2.0.1?

Release 2.0 - 2010-Oct-18

Type Changes By
update TODO: Convert RELEASE-NOTES.txt from 2.0?

Release 1.4 - 2008-Jan-21

Type Changes By
update TODO: Convert RELEASE-NOTES.txt from 1.4?

Release 1.3.2 - 2007-Jul-02

Type Changes By
fix Some tests, which are implicitly assuming a Unix-like file system, are now skipped on Windows. Fixes IO-115. jochen
fix Created the FileCleaningTracker, basically a non-static version of the FileCleaner, which can be controlled by the user. Fixes IO-116. jochen
fix EndianUtils - both readSwappedUnsignedInteger(...) methods could return negative numbers due to int/long casting. Fixes IO-117. Thanks to Hiroshi Ikeda. bayard