1463 lines
65 KiB
Plaintext
1463 lines
65 KiB
Plaintext
Apache Commons IO
|
||
Version 2.11.0
|
||
Release Notes
|
||
|
||
INTRODUCTION:
|
||
|
||
Commons IO is a package of Java utility classes like java.io.
|
||
Classes in this package are considered to be so standard and of such high
|
||
reuse as to justify existence in java.io.
|
||
|
||
The Apache Commons IO library contains utility classes, stream implementations, file filters,
|
||
file comparators, endian transformation classes, and much more.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.11.0
|
||
==============================================================================
|
||
Java 8 required.
|
||
|
||
Changes in this version include:
|
||
|
||
|
||
Fixed Bugs:
|
||
o IO-741: FileUtils.listFiles does not list matching files if File parameter is a symbolic link. Thanks to Zach Sherman.
|
||
o IO-724: FileUtils#deleteDirectory(File) exception Javadoc inaccurate update #245. Thanks to liran2000.
|
||
o Minor changes #243. Thanks to Arturo Bernal.
|
||
o Replace construction of FileInputStream and FileOutputStream objects with Files NIO APIs. #221. Thanks to Arturo Bernal.
|
||
o Fix IndexOutOfBoundsException in IOExceptionList constructors. Thanks to Gary Gregory.
|
||
o Remove IOException from the method signatures that no longer throw IOException.
|
||
This maintains binary compatibility but not source compatibility.
|
||
- FilenameUtils
|
||
directoryContains(String, String)
|
||
- BoundedReader
|
||
BoundedReader(java.io.Reader, int)
|
||
- IOUtils
|
||
lineIterator(java.io.InputStream, Charset)
|
||
lineIterator(java.io.InputStream, String)
|
||
toByteArray(String)
|
||
toInputStream(CharSequence, String)
|
||
toInputStream(String, String)
|
||
toString(byte[])
|
||
toString(byte[], String) Thanks to Gary Gregory.
|
||
|
||
Changes:
|
||
o Add SymbolicLinkFileFilter. Thanks to Gary Gregory.
|
||
o Add test to make sure the setter of AndFileFilter works correctly #244. Thanks to trncate.
|
||
o Add XmlStreamReader(Path). Thanks to Gary Gregory.
|
||
o Bump mockito-inline from 3.11.0 to 3.11.2 #247. Thanks to Dependabot.
|
||
o Bump jmh.version from 1.27 to 1.32 #237. Thanks to Dependabot.
|
||
o Bump spotbugs from 4.2.3 to 4.3.0 #249. Thanks to Dependabot.
|
||
|
||
Compatibility with 2.6:
|
||
Binary compatible: Yes.
|
||
Source compatible: Yes.
|
||
Semantic compatible: Yes.
|
||
|
||
Commons IO 2.9.0 requires Java 8.
|
||
Commons IO 2.8.0 requires Java 8.
|
||
Commons IO 2.7 requires Java 8.
|
||
Commons IO 2.6 requires Java 7.
|
||
Commons IO 2.5 requires Java 6.
|
||
Commons IO 2.4 requires Java 6.
|
||
Commons IO 2.3 requires Java 6.
|
||
Commons IO 2.2 requires Java 5.
|
||
Commons IO 1.4 requires Java 1.3.
|
||
|
||
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
|
||
|
||
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
|
||
patches, or suggestions for improvement, see the Apache Commons IO website:
|
||
|
||
https://commons.apache.org/proper/commons-io/
|
||
|
||
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
|
||
|
||
Have fun!
|
||
-Apache Commons Team
|
||
|
||
|
||
Apache Commons IO
|
||
Version 2.10.0
|
||
Release Notes
|
||
|
||
INTRODUCTION:
|
||
|
||
Commons IO is a package of Java utility classes like java.io.
|
||
Classes in this package are considered to be so standard and of such high
|
||
reuse as to justify existence in java.io.
|
||
|
||
The Apache Commons IO library contains utility classes, stream implementations, file filters,
|
||
file comparators, endian transformation classes, and much more.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.10.0
|
||
==============================================================================
|
||
Java 8 required.
|
||
|
||
Changes in this version include:
|
||
|
||
New features:
|
||
o Add and use RegexFileFilter.toString(). Thanks to Gary Gregory.
|
||
o Add and use RegexFileFilter.RegexFileFilter(Pattern, Function<Path>, String>) Thanks to Gary Gregory.
|
||
o Add and use IOCase.isCaseSensitive(IOCase). Thanks to Gary Gregory.
|
||
|
||
Fixed Bugs:
|
||
o IO-733: RegexFileFilter uses the path and file name instead of just the file name. Thanks to Jim Sellers, Gary Gregory.
|
||
o IO-734: The OSGi manifest now contains sun.* import packages #239. Thanks to Eric Norman.
|
||
o IO-585: Sanitize double slash after prefix #79. Thanks to Adam McClenaghan.
|
||
|
||
Changes:
|
||
o Bump actions/cache from 2.1.5 to 2.1.6 #238. Thanks to Dependabot.
|
||
o Bump junit-pioneer from 1.4.1 to 1.4.2 #240. Thanks to Dependabot.
|
||
o Bump checkstyle from 8.42 to 8.43 #241. Thanks to Dependabot.
|
||
o Bump mockito-inline from 3.10.0 to 3.11.0 #242. Thanks to Dependabot.
|
||
|
||
Compatibility with 2.6:
|
||
Binary compatible: Yes.
|
||
Source compatible: Yes.
|
||
Semantic compatible: Yes.
|
||
|
||
Commons IO 2.9.0 requires Java 8.
|
||
Commons IO 2.8.0 requires Java 8.
|
||
Commons IO 2.7 requires Java 8.
|
||
Commons IO 2.6 requires Java 7.
|
||
Commons IO 2.5 requires Java 6.
|
||
Commons IO 2.4 requires Java 6.
|
||
Commons IO 2.3 requires Java 6.
|
||
Commons IO 2.2 requires Java 5.
|
||
Commons IO 1.4 requires Java 1.3.
|
||
|
||
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
|
||
|
||
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
|
||
patches, or suggestions for improvement, see the Apache Commons IO website:
|
||
|
||
https://commons.apache.org/proper/commons-io/
|
||
|
||
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
|
||
|
||
Have fun!
|
||
-Apache Commons Team
|
||
|
||
|
||
Apache Commons IO
|
||
Version 2.8.0
|
||
Release Notes
|
||
|
||
INTRODUCTION:
|
||
|
||
Commons IO is a package of Java utility classes like java.io.
|
||
Classes in this package are considered to be so standard and of such high
|
||
reuse as to justify existence in java.io.
|
||
|
||
The Apache Commons IO library contains utility classes, stream implementations, file filters,
|
||
file comparators, endian transformation classes, and much more.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.8.0
|
||
==============================================================================
|
||
Java 8 required.
|
||
|
||
Changes in this version include:
|
||
|
||
New features:
|
||
o Add org.apache.commons.io.input.CircularInputStream. Thanks to Gary Gregory.
|
||
o Add org.apache.commons.io.file.PathUtils.cleanDirectory(Path, FileVisitOption...). Thanks to Gary Gregory.
|
||
o Add org.apache.commons.io.file.PathUtils.deleteDirectory(Path, FileVisitOption...). Thanks to Gary Gregory.
|
||
o Add NullAppendable. Thanks to Gary Gregory.
|
||
o Add PathUtils.getAclEntryList(Path). Thanks to Gary Gregory.
|
||
o Null-guard IOUtils.close(Closeable, IOConsumer). Thanks to Gary Gregory.
|
||
o Add ReversedLinesFileReader.readLines(int). Thanks to Gary Gregory.
|
||
o Add ReversedLinesFileReader.toString(int). Thanks to Gary Gregory.
|
||
o IO-684: Add PathUtils.delete(Path, DeleteOption...).
|
||
Add PathUtils.deleteDirectory(Path, DeleteOption...).
|
||
Add PathUtils.deleteFile(Path, DeleteOption...).
|
||
Add PathUtils.setReadOnly(Path, boolean, LinkOption...).
|
||
Add CleaningPathVisitor.CleaningPathVisitor(PathCounters, DeleteOption[], String...).
|
||
Add DeletingPathVisitor.DeletingPathVisitor(PathCounters, DeleteOption[], String...). Thanks to Gary Gregory, Robin Jansohn.
|
||
o Add RandomAccessFileInputStream. Thanks to Gary Gregory.
|
||
o IO-681: IOUtils.close(Closeable) should allow a list of closeables.
|
||
o Add IOUtils.consume(InputStream). Thanks to Gary Gregory.
|
||
o IO-676: Add isFileNewer() and isFileOlder() methods that support the Java 8 Date/Time API. #124. Thanks to Isira Seneviratne, Gary Gregory.
|
||
o Add a MarkShieldInputStream #119. Thanks to Adam Retter, Gary Gregory.
|
||
o Deprecate IOUtils.LINE_SEPARATOR in favor of Java 7's System.lineSeparator(). Thanks to Gary Gregory.
|
||
|
||
Fixed Bugs:
|
||
o CharSequenceReader.skip should return 0 instead of EOF on stream end #123. Thanks to Rob Spoor, Jochen Wiedmann.
|
||
o Implement CharSequenceReader.ready() #122. Thanks to Rob Spoor.
|
||
o IO-669: Fix code smells; fix typos #115. Thanks to XenoAmess, Gary Gregory.
|
||
o Add caching for required charsets #120. Thanks to Jerome Wolff, Gary Gregory.
|
||
o IO-673: Make some simplifications #121. Thanks to Jerome Wolff.
|
||
o IO-674: InfiniteCircularInputStream is not infinite if its input buffer contains -1. Thanks to Gary Gregory.
|
||
o IO-675: InfiniteCircularInputStream throws a divide-by-zero exception when reading if its input buffer is size 0. Thanks to Gary Gregory.
|
||
o IO-677: FileSystem.getCurrent() does not return the correct enum. Thanks to Gary Gregory.
|
||
o IO-679: input.AbstractCharacterFilterReader passes count of chars read #132. Thanks to proneel.
|
||
o IO-683: CircularBufferInputStream.read() fails to convert byte to unsigned int
|
||
o Fix SpotBugs issues in org.apache.commons.io.FileUtils. Thanks to Gary Gregory.
|
||
o IO-672: Copying a File sets last modified date to 01 January 1970.
|
||
o IO-676: Prevent NullPointerException in ReversedLinesFileReader constructors #117. Thanks to Michael Ernst, Gary Gregory.
|
||
|
||
Changes:
|
||
o Replace FindBugs with SpotBugs. Thanks to Gary Gregory.
|
||
o maven-checkstyle-plugin 3.1.0 -> 3.1.1. Thanks to Gary Gregory.
|
||
o Update tests from org.apache.commons:commons-lang3 3.10 to 3.11. Thanks to Gary Gregory.
|
||
o Update commons-parent from 50 to 51 #129. Thanks to Gary Gregory.
|
||
o Update actions/checkout from v1 to v2.3.1 #126. Thanks to Gary Gregory.
|
||
o Update junit-pioneer from 0.6.0 to 0.8.0, #127, #135. Thanks to Gary Gregory.
|
||
o Update mockito-core from 3.3.3 to 3.5.9 #128, #133, #145, #149, #151. Thanks to Gary Gregory.
|
||
o Update spotbugs from 4.0.6 to 4.1.1 #134. Thanks to Dependabot.
|
||
o Update junit-pioneer from 0.8.0 to 0.9.0 #138. Thanks to Dependabot.
|
||
o Update actions/checkout from v2.3.1 to v2.3.2 #140. Thanks to Dependabot.
|
||
o Update actions/setup-java from v1.4.0 to v1.4.2 #141, #148. Thanks to Dependabot.
|
||
|
||
Compatibility with 2.7:
|
||
Binary compatible: Yes.
|
||
Source compatible: Yes.
|
||
Semantic compatible: Yes.
|
||
|
||
Commons IO 2.7 requires Java 8.
|
||
Commons IO 2.6 requires Java 7.
|
||
Commons IO 2.5 requires Java 6.
|
||
Commons IO 2.4 requires Java 6.
|
||
Commons IO 2.3 requires Java 6.
|
||
Commons IO 2.2 requires Java 5.
|
||
Commons IO 1.4 requires Java 1.3.
|
||
|
||
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
|
||
|
||
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
|
||
patches, or suggestions for improvement, see the Apache Commons IO website:
|
||
|
||
https://commons.apache.org/proper/commons-io/
|
||
|
||
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
|
||
|
||
Have fun!
|
||
-Apache Commons Team
|
||
|
||
==============================================================================
|
||
|
||
Apache Commons IO
|
||
Version 2.7
|
||
Release Notes
|
||
|
||
INTRODUCTION:
|
||
|
||
Commons IO is a package of Java utility classes like java.io.
|
||
Classes in this package are considered to be so standard and of such high
|
||
reuse as to justify existence in java.io.
|
||
|
||
The Apache Commons IO library contains utility classes, stream implementations, file filters,
|
||
file comparators, endian transformation classes, and much more.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.7
|
||
==============================================================================
|
||
Java 8 required.
|
||
|
||
Changes in this version include:
|
||
|
||
New features:
|
||
o Adding the CircularBufferInputStream, and the PeekableInputStream.
|
||
o IO-553: Add org.apache.commons.io.FilenameUtils.isIllegalWindowsFileName(char).
|
||
o IO-577: Add readers to filter out given characters: CharacterSetFilterReader and CharacterFilterReader. Thanks to Gary Gregory.
|
||
o IO-594: Add IOUtils copy methods with java.lang.Appendable as the target. Thanks to Gary Gregory.
|
||
o IO-605: Add class CanExecuteFileFilter. Thanks to Gary Gregory.
|
||
o IO-578: Support java.nio.Path and non-default file systems for ReversedLinesFileReader (#62). Thanks to Mark Chesney.
|
||
o IO-608: Add a convenience NullPrintStream. Thanks to Gary Gregory.
|
||
o IO-612: Add class TeeReader. Thanks to Rob Spoor, Gary Gregory.
|
||
o IO-613: Add classes ClosedReader and CloseShieldReader. #84. Thanks to Rob Spoor, Gary Gregory.
|
||
o IO-614: Add classes TaggedWriter, ClosedWriter and BrokenWriter. #86. Thanks to Rob Spoor.
|
||
o IO-615: Add classes TeeWriter, FilterCollectionWriter, ProxyCollectionWriter, IOExceptionList, IOIndexedException. Thanks to Gary Gregory, Rob Spoor.
|
||
o IO-616: Add class AppendableWriter. #87. Thanks to Rob Spoor.
|
||
o IO-617: Add class CloseShieldWriter. #83. Thanks to Rob Spoor, Gary Gregory.
|
||
o IO-618: Add classes Added TaggedReader, ClosedReader and BrokenReader. #85. Thanks to Rob Spoor.
|
||
o IO-619: Support sub sequences in CharSequenceReader. #91. Thanks to Rob Spoor.
|
||
o IO-631: Add a CountingFileVisitor (as the basis for a forthcoming DeletingFileVisitor). Thanks to Gary Gregory.
|
||
o IO-632: Add PathUtils for operations on NIO Path. Thanks to Gary Gregory.
|
||
o IO-633: Add DeletingFileVisitor. Thanks to Gary Gregory.
|
||
o IO-635: Add org.apache.commons.io.IOUtils.close(Closeable). Thanks to Gary Gregory.
|
||
o IO-636: Add and reuse org.apache.commons.io.IOUtils.closeQuitely(Closeable, Consumer<IOException>).
|
||
Add and reuse org.apache.commons.io.IOUtils.close(Closeable, IOConsumer<IOException>). Thanks to Gary Gregory.
|
||
o IO-645: Add org.apache.commons.io.file.PathUtils.fileContentEquals(Path, Path, OpenOption...). Thanks to Gary Gregory.
|
||
o IO-458: Add a SequenceReader similar to java.io.SequenceInputStream. Thanks to Gary Gregory, Joshua Gitlin.
|
||
o IO-648: Implement directory content equality. 100#. Thanks to Gary Gregory.
|
||
o IO-648: Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. Thanks to Adam Retter, Alex Herbert, Gary Gregory.
|
||
o IO-662: Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. Thanks to Adam Retter, Gary Gregory.
|
||
|
||
Fixed Bugs:
|
||
o IO-589: Some tests fail if the base path contains a space.
|
||
o IO-582: Make methods in ObservableInputStream.Observer public. Thanks to Bruno Palos.
|
||
o IO-535: Thread bug in FileAlterationMonitor.stop(int). Thanks to Svetlin Zarev, Anthony Raymond.
|
||
o IO-557: Perform locale independent upper case conversions. Thanks to luccioman.
|
||
o IO-570: Missing Javadoc in FilenameUtils causing Travis-CI build to fail. Thanks to Pranet Verma.
|
||
o IO-571: Remove redundant isDirectory() check in org.apache.commons.io.FileUtils.listFilesAndDirs(File, IOFileFilter, IOFileFilter). Thanks to pranet.
|
||
o IO-559: FilenameUtils.normalize now verifies hostname syntax in UNC path.
|
||
o IO-554: FileUtils.copyToFile(InputStream source, File destination) should not close input stream. Thanks to Michele Mariotti.
|
||
o IO-604: FileUtils.doCopyFile(File, File, boolean) can throw ClosedByInterruptException. Thanks to Gary Gregory.
|
||
o IO-625: Corrected misleading exception message for FileUtils.copyDirectoryToDirectory. Thanks to Mikko Maunu.
|
||
o IO-626: A mistake in the FilenameUtils.concat()'s Javadoc about an absolute path. Thanks to Yuji Konishi.
|
||
o IO-640: NPE in org.apache.commons.io.IOUtils.contentEquals(InputStream, InputStream) when only one input is null. Thanks to Gary Gregory.
|
||
o IO-641: NPE in org.apache.commons.io.IOUtils.contentEquals(Reader, Reader) when only one input is null. Thanks to Gary Gregory.
|
||
o IO-643: NPE in org.apache.commons.io.IOUtils.contentEqualsIgnoreEOL(Reader, Reader) when only one input is null. Thanks to Gary Gregory.
|
||
o IO-644: NPE in org.apache.commons.io.FileUtils.contentEqualsIgnoreEOL(File, File) when only one input is null. Thanks to Gary Gregory.
|
||
o IO-664: org.apache.commons.io.FileUtils.copyURLToFile(*) open but do not close streams. Thanks to Gary Gregory.
|
||
|
||
Changes:
|
||
o IO-572: Refactor duplicate code in org.apache.commons.io.FileUtils. Thanks to Pranet Verma.
|
||
o IO-580: Update org.apache.commons.io.FilenameUtils.isExtension(String, String[]) to use var args.
|
||
o IO-701: Make array declaration in ThresholdingOutputStream consistent with other array declarations in the library #77. Thanks to Raymond Tan.
|
||
o IO-607: Update from Java 7 to Java 8. Thanks to Gary Gregory.
|
||
o IO-610: Remove throws IOException in method isSymlink() #80. Thanks to Sebastian.
|
||
o IO-628: Migration to JUnit Jupiter #97. Thanks to Allon Mureinik.
|
||
o IO-630: Deprecate org.apache.commons.io.output.NullOutputStream.NullOutputStream() in favor of org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM. Thanks to Gary Gregory.
|
||
o IO-629: FileUtils#forceDelete should use Files#delete rather than File#delete so exception messages includes reason for failure. Thanks to Ian Springer, Ian Springer, Gary Gregory.
|
||
o IO-634: Make getCause synchronized and use a Deque instead of a Stack #64. Thanks to V<>clav Haisman, Bruno P. Kinoshita, Gary Gregory.
|
||
o Update tests from Apache Commons Lang 3.9 to 3.10. Thanks to Gary Gregory.
|
||
o Update tests org.junit-pioneer:junit-pioneer 0.3.0 -> 0.6.0. Thanks to Gary Gregory.
|
||
o Update tests org.junit.jupiter:junit-jupiter 5.5.2 -> 5.6.2. Thanks to Gary Gregory.
|
||
o Update tests org.mockito:mockito-core 3.0.0 -> 3.3.3. Thanks to Gary Gregory.
|
||
o IO-666: Normalize internal buffers to 8192 bytes. Thanks to Gary Gregory.
|
||
o IO-665: Ensure that passing a null InputStream results in NPE with tests #112. Thanks to Otto Fowler, Gary Gregory.
|
||
o commons.jacoco.version 0.8.4 -> 0.8.5. Thanks to Gary Gregory.
|
||
o com.github.siom79.japicmp:japicmp-maven-plugin 0.14.1 -> 0.14.3. Thanks to Gary Gregory.
|
||
o IO-667: Add functional interfaces IOFunction and IOSupplier #110. Thanks to Adam Retter, Gary Gregory.
|
||
o Support sub sequences in CharSequenceReader #91. Thanks to Rob Spoor, Gary Gregory.
|
||
o Remove deprecated sudo setting. #113. Thanks to dengliming.
|
||
|
||
Compatibility with 2.6:
|
||
Binary compatible: Yes.
|
||
Source compatible: Yes.
|
||
Semantic compatible: Yes.
|
||
|
||
Commons IO 2.7 requires Java 8.
|
||
Commons IO 2.6 requires Java 7.
|
||
Commons IO 2.5 requires Java 6.
|
||
Commons IO 2.4 requires Java 6.
|
||
Commons IO 2.3 requires Java 6.
|
||
Commons IO 2.2 requires Java 5.
|
||
Commons IO 1.4 requires Java 1.3.
|
||
|
||
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
|
||
|
||
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
|
||
patches, or suggestions for improvement, see the Apache Commons IO website:
|
||
|
||
https://commons.apache.org/proper/commons-io/
|
||
|
||
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
|
||
|
||
Have fun!
|
||
-Apache Commons Team
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.6
|
||
==============================================================================
|
||
|
||
INTRODUCTION:
|
||
|
||
Apache Commons IO is a package of Java utility classes like java.io.
|
||
Classes in this package are considered to be so standard and of such high
|
||
reuse as to justify existence in java.io.
|
||
|
||
The Apache Commons IO library contains utility classes, stream implementations,
|
||
file filters, file comparators, endian transformation classes, and much more.
|
||
|
||
Apache Commons IO 2.6 requires at least Java 7 to build and run.
|
||
|
||
|
||
DEPRECATIONS
|
||
============
|
||
|
||
All closeQuietly overloads in org.apache.commons.io.IOUtils have been
|
||
deprecated. Use the try-with-resources statement or handle suppressed
|
||
exceptions manually.
|
||
|
||
The class org.apache.commons.io.FileSystemUtils has been deprecated.
|
||
Use equivalent methods in java.nio.file.FileStore instead, e.g.
|
||
Files.getFileStore(Paths.get("/home")).getUsableSpace() or iterate over
|
||
FileSystems.getDefault().getFileStores().
|
||
|
||
|
||
COMPATIBILITY WITH JAVA 9
|
||
==================
|
||
|
||
The MANIFEST.MF now contains an additional entry:
|
||
|
||
Automatic-Module-Name: org.apache.commons.io
|
||
|
||
This should make it possible to use Commons IO 2.6 as a module in the Java 9
|
||
module system. For more information see the corresponding issue:
|
||
|
||
https://issues.apache.org/jira/browse/IO-551
|
||
|
||
Building Commons IO 2.6 should work out of the box with the latest Java 9
|
||
release. Please report any Java 9 related issues at:
|
||
|
||
https://issues.apache.org/jira/browse/IO
|
||
|
||
|
||
NEW FEATURES
|
||
============
|
||
|
||
o IO-551: Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility.
|
||
o IO-367: Add convenience methods for copyToDirectory. Thanks to James Sawle.
|
||
o IO-493: Add infinite circular input stream. Thanks to Piotr Turski.
|
||
o IO-507: Add a ByteOrderUtils class.
|
||
o IO-518: Add ObservableInputStream.
|
||
o IO-519: Add MessageDigestCalculatingInputStream.
|
||
o IO-513: Add convenience methods for reading class path resources.
|
||
Thanks to Behrang Saeedzadeh.
|
||
|
||
FIXED BUGS
|
||
==========
|
||
|
||
o IO-546: ClosedOutputStream#flush should throw. Thanks to Tomas Celaya.
|
||
o IO-550: Documentation issue, fix 404 Javadoc issues in the description page.
|
||
Thanks to Jimi Adrian.
|
||
o IO-442: Javadoc contradictory for FileFilterUtils.ageFileFilter(cutoff) and
|
||
the filter it constructs: AgeFileFilter(cutoff).
|
||
Thanks to Simon Robinson.
|
||
o IO-534: FileUtilTestCase.testForceDeleteDir() should not delete testDirectory
|
||
parent.
|
||
o IO-528: Fix Tailer.run race condition runaway logging. Thanks to Dave Moten.
|
||
o IO-483: getPrefixLength return -1 if Unix file contains colon.
|
||
Thanks to Marko Vasic.
|
||
o IO-520: FileUtilsTestCase#testContentEqualsIgnoreEOL fails on Windows.
|
||
o IO-516: .gitattributes not correctly applied. Thanks to Jason Pyeron.
|
||
o IO-515: Allow Specifying Initial Buffer Size of DeferredFileOutputStream.
|
||
Thanks to Brett Lounsbury, Gary Gregory.
|
||
o IO-512: ThresholdingOutputStream.thresholdReached() results in
|
||
FileNotFoundException. Thanks to Ralf Hauser.
|
||
o IO-511: After a few unit tests, a few newly created directories not cleaned
|
||
completely. Thanks to Ahmet Celik.
|
||
o IO-502: Exceptions are suppressed incorrectly when copying files.
|
||
Thanks to Christian Schulte.
|
||
o IO-503: Update platform requirement to Java 7.
|
||
o IO-537: BOMInputStream shouldn't sort array of BOMs in-place.
|
||
Thanks to Borys Zibrov.
|
||
|
||
CHANGES
|
||
=======
|
||
|
||
o IO-553: Make code style of hasBOM() consistent with getBOMCharsetName().
|
||
Thanks to Michael Ernst.
|
||
o IO-542: FileUtils#readFileToByteArray: optimize reading of files with known
|
||
size. Thanks to Ilmars Poikans.
|
||
o IO-547: Throw a IllegalArgumentException instead of NullPointerException in
|
||
FileSystemUtils.freeSpaceWindows(). Thanks to Nikhil Shinde,
|
||
Michael Ernst, Gary Greory.
|
||
o IO-506: Deprecate methods FileSystemUtils.freeSpaceKb().
|
||
Thanks to Christian Schulte.
|
||
o IO-505: Make LineIterator implement Closeable to support try-with-resources
|
||
statements. Thanks to Christian Schulte.
|
||
o IO-504: Deprecated of all IOUtils.closeQuietly() methods and use
|
||
try-with-resources internally. Thanks to Christian Schulte.
|
||
|
||
REMOVED
|
||
=======
|
||
|
||
o IO-514: Remove org.apache.commons.io.Java7Support.
|
||
|
||
COMPATIBILITY WITH OLDER VERSIONS
|
||
=================================
|
||
|
||
Compatibility with 2.5:
|
||
Binary compatible: Yes.
|
||
Source compatible: Yes.
|
||
Semantic compatible: Yes.
|
||
|
||
Compatibility with 2.6 and 1.4:
|
||
Binary compatible: Yes.
|
||
Source compatible: No, see the rare case in
|
||
https://issues.apache.org/jira/browse/IO-318.
|
||
Semantic compatible: No, see the rare case in
|
||
https://issues.apache.org/jira/browse/IO-318.
|
||
|
||
Commons IO 2.6 requires Java 7 or later.
|
||
Commons IO 2.5 requires Java 6 or later.
|
||
Commons IO 2.4 requires Java 6 or later.
|
||
Commons IO 2.3 requires Java 6 or later.
|
||
Commons IO 2.2 requires Java 5 or later.
|
||
Commons IO 1.4 requires Java 1.3 or later.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.5
|
||
==============================================================================
|
||
New features and bug fixes.
|
||
|
||
Changes in this version include:
|
||
|
||
New features:
|
||
o IO-487: Add ValidatingObjectInputStream for controlled deserialization
|
||
o IO-471: Support for additional encodings in ReversedLinesFileReader Thanks to Leandro Reis.
|
||
o IO-425: Setter method for threshold on ThresholdingOutputStream Thanks to Craig Swank.
|
||
o IO-406: Introduce new class AppendableOutputStream Thanks to Niall Pemberton.
|
||
o IO-459: Add WindowsLineEndingInputStream and UnixLineEndingInputStream. Thanks to Kristian Rosenvold.
|
||
o IO-457: Add a BoundedReader, a wrapper that can be used to constrain access
|
||
to an underlying stream when used with mark/reset -
|
||
to avoid overflowing the mark limit of the underlying buffer. Thanks to Kristian Rosenvold.
|
||
o IO-426: Add API IOUtils.closeQuietly(Closeable...)
|
||
o IO-410: Readfully() That Returns A Byte Array Thanks to Beluga Behr.
|
||
o IO-395: Overload IOUtils buffer methods to accept buffer size Thanks to Beluga Behr.
|
||
o IO-382: Chunked IO for large arrays.
|
||
Added writeChunked(byte[], OutputStream) and writeChunked(char[] Writer)
|
||
Added ChunkedOutputStream, ChunkedWriter
|
||
o IO-233: Add Methods for Buffering Streams/Writers To IOUtils
|
||
Added overloaded buffer() methods - see also IO-330
|
||
o IO-330: IOUtils#toBufferedOutputStream/toBufferedWriter to conditionally wrap the output
|
||
Added overloaded buffer() methods - see also IO-233
|
||
o IO-381: Add FileUtils.copyInputStreamToFile API with option to leave the source open.
|
||
See copyInputStreamToFile(final InputStream source, final File destination, boolean closeSource)
|
||
o IO-379: CharSequenceInputStream - add tests for available()
|
||
Fix code so it really does reflect a minimum available.
|
||
o IO-346: Add ByteArrayOutputStream.toInputStream()
|
||
o IO-341: A constant for holding the BOM character (U+FEFF)
|
||
o IO-361: Add API FileUtils.forceMkdirsParent().
|
||
o IO-360: Add API Charsets.requiredCharsets().
|
||
o IO-359: Add IOUtils.skip and skipFully(ReadableByteChannel, long). Thanks to yukoba.
|
||
o IO-358: Add IOUtils.read and readFully(ReadableByteChannel, ByteBuffer buffer). Thanks to yukoba.
|
||
o IO-353: Add API IOUtils.copy(InputStream, OutputStream, int) Thanks to ggregory.
|
||
o IO-349: Add API with array offset and length argument to FileUtils.writeByteArrayToFile. Thanks to scop.
|
||
o IO-348: Missing information in IllegalArgumentException thrown by org.apache.commons.io.FileUtils#validateListFilesParameters. Thanks to plcstpierre.
|
||
o IO-345: Supply a hook method allowing Tailer actively determining stop condition. Thanks to mkresse.
|
||
o IO-437: Make IOUtils.EOF public and reuse it in various classes.
|
||
|
||
Fixed Bugs:
|
||
o IO-446: adds an endOfFileReached method to the TailerListener Thanks to Jeffrey Barrus.
|
||
o IO-484: FilenameUtils should handle embedded null bytes Thanks to Philippe Arteau.
|
||
o IO-481: Changed/Corrected algorithm for waitFor
|
||
o IO-428: BOMInputStream.skip returns wrong count if stream contains no BOM Thanks to Stefan Gmeiner.
|
||
o IO-488: FileUtils.waitFor(...) swallows thread interrupted status Thanks to Bj<42>rn Buchner.
|
||
o IO-452: Support for symlinks with missing target. Added support for JDK7 symlink features when present Thanks to David Standish.
|
||
o IO-453: Regression in FileUtils.readFileToString from 2.0.1 Thanks to Steven Christou.
|
||
o IO-451: ant test fails - resources missing from test classpath Thanks to David Standish.
|
||
o IO-435: Document that FileUtils.deleteDirectory, directoryContains and cleanDirectory
|
||
may throw an IllegalArgumentException in case the passed directory does not
|
||
exist or is not a directory. Thanks to Dominik Stadler.
|
||
o IO-424: Javadoc fixes, mostly to appease 1.8.0 Thanks to Ville Skytt<74>.
|
||
o IO-389: FileUtils.sizeOfDirectory can throw IllegalArgumentException Thanks to Austin Doupnik.
|
||
o IO-390: FileUtils.sizeOfDirectoryAsBigInteger can overflow.
|
||
Ensure that recursive calls all use BigInteger
|
||
o IO-385: FileUtils.doCopyFile can potentially loop for ever
|
||
Exit loop if no data to copy
|
||
o IO-383: FileUtils.doCopyFile caches the file size; needs to be documented
|
||
Added Javadoc; show file lengths in exception message
|
||
o IO-380: FileUtils.copyInputStreamToFile should document it closes the input source Thanks to claudio_ch.
|
||
o IO-279: Tailer erroneously considers file as new.
|
||
Fix to use file.lastModified() rather than System.currentTimeMillis()
|
||
o IO-356: 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
|
||
o IO-368: ClassLoaderObjectInputStream does not handle primitive typed members
|
||
o IO-314: Deprecate all methods that use the default encoding
|
||
o IO-338: When a file is rotated, finish reading previous file prior to starting new one
|
||
o IO-354: Commons IO Tailer does not respect UTF-8 Charset.
|
||
o IO-323: What should happen in FileUtils.sizeOf[Directory] when an overflow takes place?
|
||
Added Javadoc.
|
||
o IO-372: FileUtils.moveDirectory can produce misleading error message on failure
|
||
o IO-362: IOUtils.contentEquals* methods returns false if input1 == input2, should return true. Thanks to mmadson, ggregory.
|
||
o IO-357: [Tailer] InterruptedException while the thread is sleeping is silently ignored Thanks to mortenh.
|
||
o IO-352: Spelling fixes. Thanks to scop.
|
||
o IO-436: Improper Javadoc comment for FilenameUtils.indexOfExtension. Thanks to christoph.schneegans.
|
||
|
||
Changes:
|
||
o IO-433: Converted all testcases to JUnit 4
|
||
o IO-466: Added testcase to show this was fixed with IO-423
|
||
o IO-479: Correct exception message in FileUtils.getFile(File, String...) Thanks to Zhouce Chen.
|
||
o IO-465: Update to JUnit 4.12 Thanks to based2.
|
||
o IO-462: IOExceptionWithCause no longer needed
|
||
o IO-422: Deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets
|
||
o IO-239: Convert IOCase to a Java 1.5+ Enumeration
|
||
[N.B. this is binary compatible]
|
||
o IO-328: getPrefixLength returns null if filename has leading slashes
|
||
Javadoc: add examples to show correct behavior; add unit tests
|
||
o IO-299: FileUtils.listFilesAndDirs includes original dir in results even when it doesn't match filter
|
||
Javadoc: clarify that original dir is included in the results
|
||
o IO-375: FilenameUtils.splitOnTokens(String text) check for '**' could be simplified
|
||
o IO-374: WildcardFileFilter ctors should not use null to mean IOCase.SENSITIVE when delegating to other ctors
|
||
|
||
Compatibility with 2.4:
|
||
Binary compatible: Yes.
|
||
Source compatible: Yes.
|
||
Semantic compatible: Yes.
|
||
|
||
Compatibility with 2.2 and 1.4:
|
||
Binary compatible: Yes.
|
||
Source compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318.
|
||
Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318.
|
||
|
||
Commons IO 2.5 requires Java 6 or later.
|
||
Commons IO 2.4 requires Java 6 or later.
|
||
Commons IO 2.3 requires Java 6 or later.
|
||
Commons IO 2.2 requires Java 5 or later.
|
||
Commons IO 1.4 requires Java 1.3 or later.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.4
|
||
==============================================================================
|
||
|
||
Changes in this version include:
|
||
|
||
New features:
|
||
o IO-269: Tailer locks file from deletion/rename on Windows. Thanks to
|
||
sebb.
|
||
o IO-333: Export OSGi packages at version 1.x in addition to 2.x. Thanks
|
||
to fmeschbe.
|
||
o IO-320: Add XmlStreamReader support for UTF-32. Thanks to ggregory.
|
||
o IO-331: BOMInputStream wrongly detects UTF-32LE_BOM files as
|
||
UTF-16LE_BOM files in method getBOM(). Thanks to ggregory.
|
||
o IO-327: Add byteCountToDisplaySize(BigInteger). Thanks to ggregory.
|
||
o IO-326: Add new FileUtils.sizeOf[Directory] APIs to return BigInteger.
|
||
Thanks to ggregory.
|
||
o IO-325: Add IOUtils.toByteArray methods to work with URL and URI. Thanks
|
||
to raviprak.
|
||
o IO-324: Add missing Charset sister APIs to method that take a String
|
||
charset name. Thanks to raviprak.
|
||
|
||
Fixed Bugs:
|
||
o IO-336: Yottabyte (YB) incorrectly defined in FileUtils. Thanks to
|
||
rleavelle.
|
||
o IO-279: Tailer erroneously considers file as new. Thanks to Sergio
|
||
Bossa, Chris Baron.
|
||
o IO-335: Tailer#readLines - incorrect CR handling.
|
||
o IO-334: FileUtils.toURLs throws NPE for null parameter; document the
|
||
behavior.
|
||
o IO-332: Improve tailer's reading performance. Thanks to liangly.
|
||
o IO-279: Improve Tailer performance with buffered reads (see IO-332).
|
||
o IO-329: FileUtils.writeLines uses unbuffered IO. Thanks to tivv.
|
||
o IO-319: FileUtils.sizeOfDirectory follows symbolic links. Thanks to
|
||
raviprak.
|
||
|
||
|
||
Compatibility with 2.3:
|
||
Binary compatible: Yes.
|
||
Source compatible: Yes.
|
||
Semantic compatible: Yes.
|
||
|
||
Compatibility with 2.2 and 1.4:
|
||
Binary compatible: Yes.
|
||
Source compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318.
|
||
Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318.
|
||
|
||
Commons IO 2.4 requires Java 6 or later.
|
||
Commons IO 2.3 requires Java 6 or later.
|
||
Commons IO 2.2 requires Java 5 or later.
|
||
Commons IO 1.4 requires Java 1.3 or later.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.3
|
||
==============================================================================
|
||
|
||
Changes in this version include:
|
||
|
||
New features:
|
||
o IO-322: Add and use class Charsets. Thanks to ggregory.
|
||
o IO-321: ByteOrderMark UTF_32LE is incorrect. Thanks to ggregory.
|
||
o IO-318: Add Charset sister APIs to method that take a String charset name. Thanks to ggregory.
|
||
|
||
Compatibility with 2.2 and 1.4:
|
||
Binary compatible: Yes.
|
||
Source compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318.
|
||
Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318.
|
||
|
||
Commons IO 2.3 requires Java 6 or later.
|
||
Commons IO 2.2 requires Java 5 or later.
|
||
Commons IO 1.4 requires Java 1.3 or later.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.2
|
||
==============================================================================
|
||
|
||
Changes in this version include:
|
||
|
||
New features:
|
||
o Add IOUtils.toBufferedReader(Reader) Issue: IO-313. Thanks to ggregory.
|
||
o Allow applications to provide buffer (or size) for copyLarge methods. Issue: IO-308. Thanks to Manoj Mokashi.
|
||
o New copyLarge() method in IOUtils that takes additional offset, length arguments Issue: IO-305. Thanks to Manoj Mokashi.
|
||
o Use terabyte (TB), petabyte (PB) and exabyte (EB) in FileUtils.byteCountToDisplaySize(long size) Issue: IO-287. Thanks to Ron Kuris, Gary Gregory.
|
||
o FileUtils.listFiles() doesn't return directories Issue: IO-173. Thanks to Marcos Vin<69>cius da Silva.
|
||
o CharSequenceInputStream to efficiently stream content of a CharSequence Issue: IO-297. Thanks to Oleg Kalnichevski.
|
||
o The second constructor of Tailer class does not pass 'delay' to the third one Issue: IO-304. Thanks to liangly.
|
||
o TeeOutputStream does not call branch.close() when main.close() throws an exception Issue: IO-303. Thanks to fabian.barney.
|
||
o ArrayIndexOutOfBoundsException in BOMInputStream when reading a file without BOM multiple times Issue: IO-302. Thanks to jsteuerwald, detinho.
|
||
o Add IOUtils.closeQuietly(Selector) necessary Issue: IO-301. Thanks to kaykay.unique.
|
||
o IOUtils.closeQuietly() should take a ServerSocket as a parameter Issue: IO-292. Thanks to sebb.
|
||
o Add read/readFully methods to IOUtils Issue: IO-290. Thanks to sebb.
|
||
o Supply a ReversedLinesFileReader Issue: IO-288. Thanks to Georg Henzler.
|
||
o Add new function FileUtils.directoryContains. Issue: IO-291. Thanks to ggregory.
|
||
o FileUtils.contentEquals and IOUtils.contentEquals - Add option to ignore "line endings"
|
||
Added contentEqualsIgnoreEOL methods to both classes Issue: IO-275. Thanks to CJ Aspromgos.
|
||
|
||
Fixed Bugs:
|
||
o IOUtils.read(InputStream/Reader) ignores the offset parameter Issue: IO-311. Thanks to Robert Muir.
|
||
o CharSequenceInputStream(CharSequence s, Charset charset, int bufferSize) ignores bufferSize Issue: IO-312.
|
||
o FileUtils.moveDirectoryToDirectory removes source directory if destination is a subdirectory Issue: IO-300.
|
||
o ReaderInputStream#read(byte[] b, int off, int len) should check for valid parameters Issue: IO-307.
|
||
o ReaderInputStream#read(byte[] b, int off, int len) should always return 0 for length == 0 Issue: IO-306.
|
||
o "FileUtils#deleteDirectoryOnExit(File)" does not work Issue: IO-276. Thanks to nkami.
|
||
o BoundedInputStream.read() treats max differently from BoundedInputStream.read(byte[]...) Issue: IO-273. Thanks to sebb.
|
||
o Various methods of class 'org.apache.commons.io.FileUtils' incorrectly suppress 'java.io.IOException' Issue: IO-298. Thanks to Christian Schulte.
|
||
|
||
Changes:
|
||
o ReaderInputStream optimization: more efficient reading of small chunks of data Issue: IO-296. Thanks to Oleg Kalnichevski.
|
||
|
||
|
||
Compatibility with 2.1 and 1.4:
|
||
Binary compatible: Yes
|
||
Source compatible: Yes
|
||
Semantic compatible: Yes. Check the bug fixes section for semantic bug fixes
|
||
|
||
Commons IO 2.2 requires a minimum of Java 5.
|
||
Commons IO 1.4 requires a minimum of Java 1.3.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 2.1
|
||
==============================================================================
|
||
|
||
New features:
|
||
o Use standard Maven directory layout Issue: IO-285. Thanks to ggregory.
|
||
o Add IOUtils API toString for URL and URI to get contents Issue: IO-284. Thanks to ggregory.
|
||
o Add API FileUtils.copyFile(File input, OutputStream output) Issue: IO-282. Thanks to ggregory.
|
||
o FileAlterationObserver has no getter for FileFilter Issue: IO-262.
|
||
o Add FileUtils.getFile API with varargs parameter Issue: IO-261.
|
||
o Add new APPEND parameter for writing string into files Issue: IO-182.
|
||
o Add new read method "toByteArray" to handle InputStream with known size. Issue: IO-251. Thanks to Marco Albini.
|
||
|
||
Fixed Bugs:
|
||
o Dubious use of mkdirs() return code Issue: IO-280. Thanks to sebb.
|
||
o ReaderInputStream enters infinite loop when it encounters an unmappable character Issue: IO-277.
|
||
o FileUtils.moveFile() Javadoc should specify FileExistsException thrown Issue: IO-264.
|
||
o ClassLoaderObjectInputStream does not handle Proxy classes Issue: IO-260.
|
||
o Tailer returning partial lines when reaching EOF before EOL Issue: IO-274. Thanks to Frank Grimes.
|
||
o FileUtils.copyFile() throws IOException when copying large files to a shared directory (on Windows) Issue: IO-266. Thanks to Igor Smereka.
|
||
o FileSystemUtils.freeSpaceKb throws exception for Windows volumes with no visible files.
|
||
Improve coverage by also looking for hidden files. Issue: IO-263. Thanks to Gil Adam.
|
||
|
||
Changes:
|
||
o FileAlterationMonitor.stop(boolean allowIntervalToFinish) Issue: IO-259.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Package 2.0.1
|
||
==============================================================================
|
||
|
||
Compatibility with 2.0 and 1.4
|
||
------------------------------
|
||
Binary compatible - Yes
|
||
|
||
Source compatible - Yes
|
||
|
||
Semantic compatible - Yes
|
||
Check the bug fixes section for semantic bug fixes
|
||
|
||
Commons IO 2.0.1 requires a minimum of Java 5
|
||
(Commons IO 1.4 had a minimum of Java 1.3)
|
||
|
||
Enhancements from 2.0
|
||
---------------------
|
||
|
||
* [IO-256] - Provide thread factory for FileAlternationMonitor
|
||
|
||
Bug fixes from 2.0
|
||
------------------
|
||
|
||
* [IO-257] - BOMInputStream.read(byte[]) can return 0 which it should not
|
||
* [IO-258] - XmlStreamReader consumes the stream during encoding detection
|
||
|
||
==============================================================================
|
||
Apache Commons IO Package 2.0
|
||
==============================================================================
|
||
|
||
Compatibility with 1.4
|
||
----------------------
|
||
Binary compatible - Yes
|
||
|
||
Source compatible - Yes
|
||
|
||
Semantic compatible - Yes
|
||
Check the bug fixes section for semantic bug fixes
|
||
|
||
Commons IO 2.0 requires a minimum of Java 5
|
||
(Commons IO 1.4 had a minimum of Java 1.3)
|
||
|
||
Deprecations from 1.4
|
||
---------------------
|
||
|
||
- IOUtils
|
||
- write(StringBuffer, Writer) in favour of write(CharSequence, Writer)
|
||
- write(StringBuffer, OutputStream) in favour of write(CharSequence, OutputStream)
|
||
- write(StringBuffer, OutputStream, String) in favour of write(CharSequence, OutputStream, String)
|
||
|
||
- FileFilterUtils
|
||
- andFileFilter(IOFileFilter, IOFileFilter) in favour of and(IOFileFilter...)
|
||
- orFileFilter(IOFileFilter, IOFileFilter) in favour of or(IOFileFilter...)
|
||
|
||
Enhancements from 1.4
|
||
---------------------
|
||
|
||
* [IO-140] Move minimum Java requirement from Java 1.3 to Java 5
|
||
- use Generics
|
||
- add new CharSequence write() flavour methods to IOUtils and FileUtils
|
||
- replace StringBuffer with StringBuilder, where appropriate
|
||
- add new Reader/Writer methods to ProxyReader and ProxyWriter
|
||
- Annotate with @Override and @Deprecated
|
||
|
||
* [IO-178] New BOMInputStream and ByteOrderMark implementations - to detect and optionally exclude an initial Byte Order mark (BOM)
|
||
* [IO-197] New BoundedInputStream (copied from Apache JackRabbit)
|
||
* [IO-193] New Broken Input and Output streams
|
||
* [IO-132] New File Listener/Monitor facility
|
||
* [IO-158] New ReaderInputStream and WriterOutputStream implementations
|
||
* [IO-139] New StringBuilder Writer implementation
|
||
* [IO-192] New Tagged Input and Output streams
|
||
* [IO-177] New Tailer class - simple implementation of the Unix "tail -f" functionality
|
||
* [IO-162] New XML Stream Reader/Writer implementations (from ROME via plexus-utils)
|
||
|
||
* [IO-142] Comparators - add facility to sort file lists/arrays
|
||
* [IO-186] Comparators - new Composite and Directory File Comparator implementations
|
||
* [IO-176] DirectoryWalker - add filterDirectoryContents() callback method for filtering directory contents
|
||
* [IO-210] FileFilter - new Magic Number FileFilter
|
||
* [IO-221] FileFilterUtils - add methods for suffix and prefix filters which take an IOCase object
|
||
* [IO-232] FileFilterUtils - add method for name filters which take an IOCase object
|
||
* [IO-229] FileFilterUtils - add varargs and() and or() methods
|
||
* [IO-198] FileFilterUtils - add ability to apply file filters to collections and arrays
|
||
* [IO-156] FilenameUtils - add normalize() and normalizeNoEndSeparator() methods which allow the separator character to be specified
|
||
* [IO-194] FileSystemUtils - add freeSpaceKb() method with no input arguments
|
||
* [IO-185] FileSystemUtils - add freeSpaceKb() methods that take a timeout parameter - fixes freeSpaceWindows() blocks
|
||
* [IO-155] FileUtils - use NIO to copy files
|
||
* [IO-168] FileUtils - add new isSymlink() method
|
||
* [IO-219] FileUtils - throw FileExistsException when moving a file or directory if the destination already exists
|
||
* [IO-234] FileUtils - add Methods for retrieving System User/Temp directories/paths
|
||
* [IO-208] FileUtils - add timeout (connection and read) support for copyURLToFile() method
|
||
* [IO-238] FileUtils - add sizeOf(File) method
|
||
* [IO-181] LineIterator now implements Iterable
|
||
* [IO-224] IOUtils - add closeQuietly(Closeable) and closeQuietly(Socket) methods
|
||
* [IO-203] IOUtils - add skipFully() method for InputStreams
|
||
* [IO-137] IOUtils and ByteArrayOutputStream - add toBufferedInputStream() method to avoid unnecessary array allocation/copy
|
||
* [IO-195] Proxy streams/Reader/Writer - provide exception handling methods
|
||
* [IO-211] Proxy Input/Output streams - add pre/post processing support
|
||
* [IO-242] Proxy Reader/Writer - add pre/post processing support
|
||
|
||
Bug fixes from 1.4
|
||
------------------
|
||
* [IO-214] ByteArrayOutputStream - fix inconsistent synchronization of fields
|
||
* [IO-201] Counting Input/Output streams - fix inconsistent synchronization
|
||
* [IO-159] FileCleaningTracker - fix remove() never returns null
|
||
* [IO-220] FileCleaningTracker - fix Vector performs badly under load
|
||
* [IO-167] FilenameUtils - fix case-insensitive string handling in FilenameUtils and FilesystemUtils
|
||
* [IO-179] FilenameUtils - fix StringIndexOutOfBounds exception in getPathNoEndSeparator()
|
||
* [IO-248] FilenameUtils - fix getFullPathNoEndSeparator() returns empty while path is a one level directory
|
||
* [IO-246] FilenameUtils - fix wildcardMatch gives incorrect results
|
||
* [IO-187] FileSystemUtils - fix freeSpaceKb() doesn't work with relative paths on Linux
|
||
* [IO-160] FileSystemUtils - fix freeSpace() fails on solaris
|
||
* [IO-209] FileSystemUtils - fix freeSpaceKb() fails to return correct size for a windows mount point
|
||
* [IO-163] FileUtils - fix toURLs() using deprecated method of conversion to URL
|
||
* [IO-168] FileUtils - fix Symbolic links followed when deleting directory
|
||
* [IO-231] FileUtils - fix wrong exception message generated in isFileNewer() method
|
||
* [IO-207] FileUtils - fix race condition in forceMkdir() method
|
||
* [IO-217] FileUtils - fix copyDirectoryToDirectory() makes infinite loops
|
||
* [IO-166] FileUtils - fix URL decoding in toFile(URL)
|
||
* [IO-190] FileUtils - fix copyDirectory not preserving lastmodified date on subdirectories
|
||
* [IO-240] FileFilterUtils - ensure cvsFilter and svnFilter are only created once.
|
||
* [IO-175] IOUtils - fix copyFile() issues with very large files
|
||
* [IO-191] Improvements from static analysis
|
||
* [IO-216] LockableFileWriter - delete files quietly when an exception is thrown during initialization
|
||
* [IO-243] SwappedDataInputStream - fix readBoolean is inverted
|
||
* [IO-235] Tests - remove unused YellOnFlushAndCloseOutputStream from CopyUtilsTest
|
||
* [IO-161] Tests - fix FileCleaningTrackerTestCase hanging
|
||
|
||
Documentation changes from 1.4
|
||
------------------------------
|
||
* [IO-183 FilenameUtils.getExtension() method documentation improvements
|
||
* [IO-226 FileUtils.byteCountToDisplaySize() documentation corrections
|
||
* [IO-205 FileUtils.forceMkdir() documentation improvements
|
||
* [IO-215 FileUtils copy file/directory improve documentation regarding preserving the last modified date
|
||
* [IO-189 HexDump.dump() method documentation improvements
|
||
* [IO-171 IOCase document that it assumes there are only two OSes: Windows and Unix
|
||
* [IO-223 IOUtils.copy() documentation corrections
|
||
* [IO-247 IOUtils.closeQuietly() improve documentation with examples
|
||
* [IO-202 NotFileFilter documentation corrections
|
||
* [IO-206 ProxyInputStream - fix misleading parameter names
|
||
* [IO-212 ProxyInputStream.skip() documentation corrections
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 1.4
|
||
==============================================================================
|
||
|
||
Compatibility with 1.3.2
|
||
------------------------
|
||
Binary compatible - Yes
|
||
|
||
Source compatible - Yes
|
||
|
||
Semantic compatible - Yes
|
||
Check the bug fixes section for semantic bug fixes
|
||
|
||
Commons IO 1.4 introduces four new implementations which depend on Java 4 features
|
||
(CharSequenceReader, FileWriterWithEncoding, IOExceptionWithCause and RegexFileFilter).
|
||
It has been built with the JDK source and target options set to Java 1.3 and, except for
|
||
those implementations, can be used with Java 1.3 (see IO-127).
|
||
|
||
Deprecations from 1.3.2
|
||
-----------------------
|
||
- FileCleaner deprecated in favour of FileCleaningTracker [see IO-116]
|
||
|
||
Bug fixes from 1.3.2
|
||
--------------------
|
||
- FileUtils
|
||
- forceDelete of orphaned Softlinks does not work [IO-147]
|
||
- Infinite loop on FileUtils.copyDirectory when the destination directory is within
|
||
the source directory [IO-141]
|
||
- Add a copyDirectory() method that makes use of FileFilter [IO-105]
|
||
- Add moveDirectory() and moveFile() methods [IO-77]
|
||
|
||
- HexDump
|
||
- HexDump's use of static StringBuffers isn't thread-safe [IO-136]
|
||
|
||
Enhancements from 1.3.2
|
||
-----------------------
|
||
- FileUtils
|
||
- Add a deleteQuietly method [IO-135]
|
||
|
||
- FilenameUtils
|
||
- Add file name extension separator constants[IO-149]
|
||
|
||
- IOExceptionWithCause [IO-148]
|
||
- Add a new IOException implementation with constructors which take a cause
|
||
|
||
- TeeInputStream [IO-129]
|
||
- Add new Tee input stream implementation
|
||
|
||
- FileWriterWithEncoding [IO-153]
|
||
- Add new File Writer implementation that accepts an encoding
|
||
|
||
- CharSequenceReader [IO-138]
|
||
- Add new Reader implementation that handles any CharSequence (String,
|
||
StringBuffer, StringBuilder or CharBuffer)
|
||
|
||
- ThresholdingOutputStream [IO-121]
|
||
- Add a reset() method which sets the count of the bytes written back to zero.
|
||
|
||
- DeferredFileOutputStream [IO-130]
|
||
- Add support for temporary files
|
||
|
||
- ByteArrayOutputStream
|
||
- Add a new write(InputStream) method [IO-152]
|
||
|
||
- New Closed Input/Output stream implementations [IO-122]
|
||
- AutoCloseInputStream - automatically closes and discards the underlying input stream
|
||
- ClosedInputStream - returns -1 for any read attempts
|
||
- ClosedOutputStream - throws an IOException for any write attempts
|
||
- CloseShieldInputStream - prevents the underlying input stream from being closed.
|
||
- CloseShieldOutputStream - prevents the underlying output stream from being closed.
|
||
|
||
- Add Singleton Constants to several stream classes [IO-143]
|
||
|
||
- PrefixFileFilter [IO-126]
|
||
- Add facility to specify case sensitivity on prefix matching
|
||
|
||
- SuffixFileFilter [IO-126]
|
||
- Add facility to specify case sensitivity on suffix matching
|
||
|
||
- RegexFileFilter [IO-74]
|
||
- Add new regular expression file filter implementation
|
||
|
||
- Make IOFileFilter implementations Serializable [IO-131]
|
||
|
||
- Improve IOFileFilter toString() methods [IO-120]
|
||
|
||
- Make fields final so classes are immutable/threadsafe [IO-133]
|
||
- changes to Age, Delegate, Name, Not, Prefix, Regex, Size, Suffix and Wildcard IOFileFilter
|
||
implementations.
|
||
|
||
- IOCase
|
||
- Add a compare method to IOCase [IO-144]
|
||
|
||
- Add a package of java.util.Comparator implementations for files [IO-145]
|
||
- DefaultFileComparator - compare files using the default File.compareTo(File) method.
|
||
- ExtensionFileComparator - compares files using file name extensions.
|
||
- LastModifiedFileComparator - compares files using the last modified date/time.
|
||
- NameFileComparator - compares files using file names.
|
||
- PathFileComparator - compares files using file paths.
|
||
- SizeFileComparator - compares files using file sizes.
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 1.3.2
|
||
==============================================================================
|
||
|
||
Compatibility with 1.3.1
|
||
----------------------
|
||
Binary compatible - Yes
|
||
|
||
Source compatible - Yes
|
||
|
||
Semantic compatible - Yes
|
||
|
||
Compatibility with 1.3
|
||
----------------------
|
||
Binary compatible - No
|
||
See [IO-113]
|
||
|
||
Source compatible - No
|
||
See [IO-113]
|
||
|
||
Semantic compatible - Yes
|
||
|
||
Enhancements since 1.3.1
|
||
------------------------
|
||
|
||
- Created the FileCleaningTracker, basically a non-static version of the
|
||
FileCleaner, which can be controlled by the user. [IO-116]
|
||
- The FileCleaner is deprecated.
|
||
|
||
Bug fixes from 1.3.1
|
||
--------------------
|
||
|
||
- Some tests, which are implicitly assuming a Unix-like file system, are
|
||
now skipped on Windows. [IO-115]
|
||
- EndianUtils
|
||
- Both readSwappedUnsignedInteger(...) methods could return negative
|
||
numbers due to int/long casting. [IO-117]
|
||
|
||
Bug fixes from 1.3
|
||
------------------
|
||
|
||
- FileUtils
|
||
- NPE in openOutputStream(File) when file has no parent in path [IO-112]
|
||
- readFileToString(File) is not static [IO-113]
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 1.3.1
|
||
==============================================================================
|
||
|
||
Compatibility with 1.3
|
||
----------------------
|
||
Binary compatible - No
|
||
See [IO-113]
|
||
|
||
Source compatible - No
|
||
See [IO-113]
|
||
|
||
Semantic compatible - Yes
|
||
|
||
Bug fixes from 1.3
|
||
------------------
|
||
|
||
- FileUtils
|
||
- NPE in openOutputStream(File) when file has no parent in path [IO-112]
|
||
- readFileToString(File) is not static [IO-113]
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 1.3
|
||
==============================================================================
|
||
|
||
Compatibility with 1.2
|
||
----------------------
|
||
Binary compatible - Yes
|
||
|
||
Source compatible - Yes
|
||
|
||
Semantic compatible - Yes
|
||
Check the bug fixes section for semantic bug fixes
|
||
|
||
Deprecations from 1.2
|
||
---------------------
|
||
- WildcardFilter deprecated, replaced by WildcardFileFilter
|
||
- old class only accepted files, thus had a confusing dual purpose
|
||
|
||
- FileSystemUtils.freeSpace deprecated, replaced by freeSpaceKb
|
||
- freeSpace returns a result that varies by operating system and
|
||
thus isn't that useful
|
||
- freeSpaceKb returns much better and more consistent results
|
||
- freeSpaceKb existed in v1.2, so this is a gentle cutover
|
||
|
||
Bug fixes from 1.2
|
||
------------------
|
||
- LineIterator now implements Iterator
|
||
- It was always supposed to...
|
||
|
||
- FileSystemUtils.freeSpace/freeSpaceKb [IO-83]
|
||
- These should now work on AIX and HP-UX
|
||
|
||
- FileSystemUtils.freeSpace/freeSpaceKb [IO-90]
|
||
- Avoid infinite looping in Windows
|
||
- Catch more errors with nice messages
|
||
|
||
- FileSystemUtils.freeSpace [IO-91]
|
||
- This is now documented not to work on SunOS 5
|
||
|
||
- FileSystemUtils [IO-93]
|
||
- Fixed resource leak leading to 'Too many open files' error
|
||
- Previously did not destroy Process instances (as JDK Javadoc is so poor)
|
||
- http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4801027
|
||
|
||
- FileUtils.touch [IO-100]
|
||
- The touch method previously gave no indication when the file could not
|
||
be touched successfully (such as due to access restrictions) - it now
|
||
throws an IOException if the last modified date cannot be changed
|
||
|
||
- FileCleaner
|
||
- This now handles the situation where an error occurs when deleting the file
|
||
|
||
- IOUtils.copy [IO-84]
|
||
- Copy methods could return inaccurate byte/char count for large streams
|
||
- The copy(InputStream, OutputStream) method now returns -1 if the count is greater than an int
|
||
- The copy(Reader, Writer) method now throws now returns -1 if the count is greater than an int
|
||
- Added a new copyLarge(InputStream, OutputStream) method that returns a long
|
||
- Added a new copyLarge(Reader, Writer) method that returns a long
|
||
|
||
- CountingInputStream/CountingOutputStream [IO-84]
|
||
- Methods were declared as int thus the count was inaccurate for large streams
|
||
- new long based methods getByteCount()/resetByteCount() added
|
||
- existing methods changed to throw an exception if the count is greater than an int
|
||
|
||
- FileBasedTestCase
|
||
- Fixed bug in compare content methods identified by GNU classpath
|
||
|
||
- EndianUtils.writeSwappedLong(byte[], int) [IO-101]
|
||
- An int overrun in the bit shifting when it should have been a long
|
||
|
||
- EndianUtils.writeSwappedLong(InputStream) [IO-102]
|
||
- The return of input.read(byte[]) was not being checked to ensure all 8 bytes were read
|
||
|
||
Enhancements from 1.2
|
||
---------------------
|
||
- DirectoryWalker [IO-86]
|
||
- New class designed for subclassing to walk through a set of files.
|
||
DirectoryWalker provides the walk of the directories, filtering of
|
||
directories and files, and cancellation support. The subclass must provide
|
||
the specific behavior, such as text searching or image processing.
|
||
|
||
- IOCase
|
||
- New class/enumeration for case-sensitivity control
|
||
|
||
- FilenameUtils
|
||
- New methods to handle case-sensitivity
|
||
- wildcardMatch - new method that has IOCase as a parameter
|
||
- equals - new method that has IOCase as a parameter
|
||
|
||
- FileUtils [IO-108] - new default encoding methods for:
|
||
- readFileToString(File)
|
||
- readLines(File)
|
||
- lineIterator(File)
|
||
- writeStringToFile(File, String)
|
||
- writeLines(File, Collection)
|
||
- writeLines(File, Collection, String)
|
||
|
||
- FileUtils.openOutputStream [IO-107]
|
||
- new method to open a FileOutputStream, creating parent directories if required
|
||
- FileUtils.touch
|
||
- FileUtils.copyURLToFile
|
||
- FileUtils.writeStringToFile
|
||
- FileUtils.writeByteArrayToFile
|
||
- FileUtils.writeLines
|
||
- enhanced to create parent directories if required
|
||
- FileUtils.openInputStream [IO-107]
|
||
- new method to open a FileInputStream, providing better error messages than the JDK
|
||
|
||
- FileUtils.isFileOlder
|
||
- new methods to check if a file is older (i.e. isFileOlder()) - counterparts
|
||
to the existing isFileNewer() methods.
|
||
|
||
- FileUtils.checksum, FileUtils.checksumCRC32
|
||
- new methods to create a checksum of a file
|
||
|
||
- FileUtils.copyFileToDirectory [IO-104]
|
||
- new variant that optionally retains the file date
|
||
|
||
- FileDeleteStrategy
|
||
- FileCleaner [IO-56,IO-70]
|
||
- FileDeleteStrategy is a strategy for handling file deletion
|
||
- This can be used as a callback in FileCleaner
|
||
- Together these allow FileCleaner to do a forceDelete to kill directories
|
||
|
||
- FileCleaner.exitWhenFinished [IO-99]
|
||
- A new method that allows the internal cleaner thread to be cleanly terminated
|
||
|
||
- WildcardFileFilter
|
||
- Replacement for WildcardFilter
|
||
- Accepts both files and directories
|
||
- Ability to control case-sensitivity
|
||
|
||
- NameFileFilter
|
||
- Ability to control case-sensitivity
|
||
|
||
- FileFileFilter
|
||
- New IOFileFilter implementation
|
||
- Accepts files where File.isFile() is true
|
||
- In other words it filters out directories
|
||
- Singleton instance provided (FILE)
|
||
|
||
- CanReadFileFilter
|
||
- New IOFileFilter implementation
|
||
- Accepts files where File.canRead() is true
|
||
- Singleton instances provided (CAN_READ/CANNOT_READ/READ_ONLY)
|
||
|
||
- CanWriteFileFilter
|
||
- New IOFileFilter implementation
|
||
- Accepts files where File.canWrite() is true
|
||
- Singleton instances provided (CAN_WRITE/CANNOT_WRITE)
|
||
|
||
- HiddenFileFilter
|
||
- New IOFileFilter implementation
|
||
- Accepts files where File.isHidden() is true
|
||
- Singleton instances provided (HIDDEN/VISIBLE)
|
||
|
||
- EmptyFileFilter
|
||
- New IOFileFilter implementation
|
||
- Accepts files or directories that are empty
|
||
- Singleton instances provided (EMPTY/NOT_EMPTY)
|
||
|
||
- TrueFileFilter/FalseFileFilter/DirectoryFileFilter
|
||
- New singleton instance constants (TRUE/FALSE/DIRECTORY)
|
||
- The new constants are more Java 5 friendly with regards to static imports
|
||
(whereas if everything uses INSTANCE, then they just clash)
|
||
- The old INSTANCE constants are still present and have not been deprecated
|
||
|
||
- FileFilterUtils.sizeRangeFileFilter
|
||
- new sizeRangeFileFilter(long minimumSize, long maximumSize) method which
|
||
creates a filter that accepts files within the specified size range.
|
||
|
||
- FileFilterUtils.makeDirectoryOnly/makeFileOnly
|
||
- two new methods that decorate a file filter to make it apply to
|
||
directories only or files only
|
||
|
||
- NullWriter
|
||
- New writer that acts as a sink for all data, as per /dev/null
|
||
|
||
- NullInputStream
|
||
- New input stream that emulates a stream of a specified size
|
||
|
||
- NullReader
|
||
- New reader that emulates a reader of a specified size
|
||
|
||
- ByteArrayOutputStream [IO-97]
|
||
- Performance enhancements
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 1.2
|
||
==============================================================================
|
||
|
||
Compatibility with 1.1
|
||
----------------------
|
||
Binary compatible - Yes
|
||
|
||
Source compatible - Yes
|
||
|
||
Semantic compatible - Yes
|
||
|
||
Deprecations from 1.1
|
||
---------------------
|
||
|
||
Bug fixes from 1.1
|
||
------------------
|
||
- FileSystemUtils.freeSpace(drive)
|
||
Fix to allow Windows based command to function in French locale
|
||
|
||
- FileUtils.read*
|
||
Increase certainty that files are closed in case of error
|
||
|
||
- LockableFileWriter
|
||
Locking mechanism was broken and only provided limited protection [38942]
|
||
File deletion and locking in case of constructor error was broken
|
||
|
||
Enhancements from 1.1
|
||
---------------------
|
||
- AgeFileFilter/SizeFileFilter
|
||
New file filters that compares against the age and size of the file
|
||
|
||
- FileSystemUtils.freeSpaceKb(drive)
|
||
New method that unifies result to be in kilobytes [38574]
|
||
|
||
- FileUtils.contentEquals(File,File)
|
||
Performance improved by adding length and file location checking
|
||
|
||
- FileUtils.iterateFiles
|
||
Two new method to provide direct access to iterators over files
|
||
|
||
- FileUtils.lineIterator
|
||
IOUtils.lineIterator
|
||
New methods to provide an iterator over the lines in a file [38083]
|
||
|
||
- FileUtils.copyDirectoryToDirectory
|
||
New method to copy a directory to within another directory [36315]
|
||
|
||
==============================================================================
|
||
Apache Commons IO Version 1.1
|
||
==============================================================================
|
||
|
||
Incompatible changes from 1.0
|
||
-----------------------------
|
||
Binary compatible - Yes
|
||
|
||
Source compatible - Yes
|
||
|
||
Semantic compatible - Yes, except:
|
||
- FileUtils.writeStringToFile()
|
||
A null encoding previously used 'ISO-8859-1', now it uses the platform default
|
||
Generally this will make no difference
|
||
|
||
- LockableFileWriter
|
||
Improved validation and now create directories if necessary
|
||
|
||
plus these bug fixes may affect you semantically:
|
||
- FileUtils.touch() (Bug fix 29821)
|
||
Now creates the file if it did not previously exist
|
||
|
||
- FileUtils.toFile(URL) (Bug fix 32575)
|
||
Now handles escape syntax such as %20
|
||
|
||
- FileUtils.sizeOfDirectory() (Bug fix 36801)
|
||
May now return a size of 0 if the directory is security restricted
|
||
|
||
Deprecations from 1.0
|
||
---------------------
|
||
- CopyUtils has been deprecated.
|
||
Its methods have been moved to IOUtils.
|
||
The new IOUtils methods handle nulls better, and have clearer names.
|
||
|
||
- IOUtils.toByteArray(String) - Use {@link String#getBytes()}
|
||
- IOUtils.toString(byte[]) - Use {@link String#String(byte[])}
|
||
- IOUtils.toString(byte[],String) - Use {@link String#String(byte[],String)}
|
||
|
||
Bug fixes from 1.0
|
||
------------------
|
||
- FileUtils - touch() [29821]
|
||
Now creates the file if it did not previously exist
|
||
|
||
- FileUtils - toFile(URL) [32575]
|
||
Now handles escape syntax such as %20
|
||
|
||
- FileFilterUtils - makeCVSAware(IOFileFilter) [33023]
|
||
Fixed bug that caused method to be completely broken
|
||
|
||
- CountingInputStream [33336]
|
||
Fixed bug that caused the count to reduce by one at the end of the stream
|
||
|
||
- CountingInputStream - skip(long) [34311]
|
||
Bytes from calls to this method were not previously counted
|
||
|
||
- NullOutputStream [33481]
|
||
Remove unnecessary synchronization
|
||
|
||
- AbstractFileFilter - accept(File, String) [30992]
|
||
Fixed broken implementation
|
||
|
||
- FileUtils [36801]
|
||
Previously threw NPE when listing files in a security restricted directory
|
||
Now throw IOException with a better message
|
||
|
||
- FileUtils - writeStringToFile()
|
||
Null encoding now correctly uses the platform default
|
||
|
||
Enhancements from 1.0
|
||
---------------------
|
||
- FilenameUtils - new class [33303,29351]
|
||
A static utility class for working with filenames
|
||
Seeks to ease the pain of developing on Windows and deploying on Unix
|
||
|
||
- FileSystemUtils - new class [32982,36325]
|
||
A static utility class for working with file systems
|
||
Provides one method at present, to get the free space on the filing system
|
||
|
||
- IOUtils - new public constants
|
||
Constants for directory and line separators on Windows and Unix
|
||
|
||
- IOUtils - toByteArray(Reader,encoding)
|
||
Handles encodings when reading to a byte array
|
||
|
||
- IOUtils - toCharArray(InputStream) [28979]
|
||
- toCharArray(InputStream,encoding)
|
||
- toCharArray(Reader)
|
||
Reads a stream/reader into a character array
|
||
|
||
- IOUtils - readLines(InputStream) [36214]
|
||
- readLines(InputStream,encoding)
|
||
- readLines(Reader)
|
||
Reads a stream/reader line by line into a List of Strings
|
||
|
||
- IOUtils - toInputStream(String) [32958]
|
||
- toInputStream(String,encoding)
|
||
Creates an input stream that uses the string as a source of data
|
||
|
||
- IOUtils - writeLines(Collection,lineEnding,OutputStream) [36214]
|
||
- writeLines(Collection,lineEnding,OutputStream,encoding)
|
||
- writeLines(Collection,lineEnding,Writer)
|
||
Writes a collection to a stream/writer line by line
|
||
|
||
- IOUtils - write(...)
|
||
Write data to a stream/writer (moved from CopyUtils with better null handling)
|
||
|
||
- IOUtils - copy(...)
|
||
Copy data between streams (moved from CopyUtils with better null handling)
|
||
|
||
- IOUtils - contentEquals(Reader,Reader)
|
||
Method to compare the contents of two readers
|
||
|
||
- FileUtils - toFiles(URL[])
|
||
Converts an array of URLs to an array of Files
|
||
|
||
- FileUtils - copyDirectory() [32944]
|
||
New methods to copy a directory
|
||
|
||
- FileUtils - readFileToByteArray(File)
|
||
Reads an entire file into a byte array
|
||
|
||
- FileUtils - writeByteArrayToFile(File,byte[])
|
||
Writes a byte array to a file
|
||
|
||
- FileUtils - readLines(File,encoding) [36214]
|
||
Reads a file line by line into a List of Strings
|
||
|
||
- FileUtils - writeLines(File,encoding,List)
|
||
writeLines(File,encoding,List,lineEnding)
|
||
Writes a collection to a file line by line
|
||
|
||
- FileUtils - EMPTY_FILE_ARRAY
|
||
Constant for an empty array of File objects
|
||
|
||
- ConditionalFileFilter - new interface [30705]
|
||
Defines the behavior of list based filters
|
||
|
||
- AndFileFilter, OrFileFilter [30705]
|
||
Now support a list of filters to and/or
|
||
|
||
- WildcardFilter [31115]
|
||
New filter that can match using wildcard file names
|
||
|
||
- FileFilterUtils - makeSVNAware(IOFileFilter)
|
||
New method, like makeCVSAware, that ignores Subversion source control directories
|
||
|
||
- ClassLoaderObjectInputStream
|
||
An ObjectInputStream that supports a ClassLoader
|
||
|
||
- CountingInputStream,CountingOutputStream - resetCount() [28976]
|
||
Adds the ability to reset the count part way through reading/writing the stream
|
||
|
||
- DeferredFileOutputStream - writeTo(OutputStream) [34173]
|
||
New method to allow current contents to be written to a stream
|
||
|
||
- DeferredFileOutputStream [34142]
|
||
Performance optimizations avoiding double buffering
|
||
|
||
- LockableFileWriter - encoding support [36825]
|
||
Add support for character encodings to LockableFileWriter
|
||
Improve the validation
|
||
Create directories if necesssary
|
||
|
||
- IOUtils and EndianUtils are no longer final [28978]
|
||
Allows developers to have subclasses if desired
|
||
|
||
==============================================================================
|
||
Feedback
|
||
==============================================================================
|
||
|
||
Open source works best when you give feedback:
|
||
https://commons.apache.org/io/
|
||
|
||
Please direct all bug reports to JIRA
|
||
https://issues.apache.org/jira/browse/IO
|
||
|
||
Or subscribe to the commons-user mailing list (prefix emails by [io])
|
||
https://commons.apache.org/mail-lists.html
|
||
|
||
The Commons-IO Team
|