org.apache.commons.io.comparator
Class SizeFileComparator
- java.lang.Object
-
- org.apache.commons.io.comparator.SizeFileComparator
-
- All Implemented Interfaces:
- Serializable, Comparator< File>
public class SizeFileComparator extends Object implements Serializable
Compare the length/size of two files for order (seeFile.length()
andFileUtils.sizeOfDirectory(File)
).This comparator can be used to sort lists or arrays of files by their length/size.
Example of sorting a list of files using the
SIZE_COMPARATOR
singleton instance:List<File> list = ... ((AbstractFileComparator) SizeFileComparator.SIZE_COMPARATOR).sort(list);
Example of doing a reverse sort of an array of files using the
SIZE_REVERSE
singleton instance:File[] array = ... ((AbstractFileComparator) SizeFileComparator.SIZE_REVERSE).sort(array);
N.B. Directories are treated as zero size unless
sumDirectoryContents
istrue
.- Since:
- 1.4
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field and Description static Comparator<File>
SIZE_COMPARATOR
Size comparator instance - directories are treated as zero sizestatic Comparator<File>
SIZE_REVERSE
Reverse size comparator instance - directories are treated as zero sizestatic Comparator<File>
SIZE_SUMDIR_COMPARATOR
Size comparator instance which sums the size of a directory's contents usingFileUtils.sizeOfDirectory(File)
static Comparator<File>
SIZE_SUMDIR_REVERSE
Reverse size comparator instance which sums the size of a directory's contents usingFileUtils.sizeOfDirectory(File)
Constructor Summary
Constructors Constructor and Description SizeFileComparator()
Construct a file size comparator instance (directories treated as zero size).SizeFileComparator(boolean sumDirectoryContents)
Construct a file size comparator instance specifying whether the size of the directory contents should be aggregated.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description int
compare(File file1, File file2)
Compare the length of two files.File[]
sort(File... files)
Sort an array of files.List<File>
sort(List<File> files)
Sort a List of files.String
toString()
String representation of this file comparator.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Comparator
comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Field Detail
SIZE_COMPARATOR
public static final Comparator<File> SIZE_COMPARATOR
Size comparator instance - directories are treated as zero size
SIZE_REVERSE
public static final Comparator<File> SIZE_REVERSE
Reverse size comparator instance - directories are treated as zero size
SIZE_SUMDIR_COMPARATOR
public static final Comparator<File> SIZE_SUMDIR_COMPARATOR
Size comparator instance which sums the size of a directory's contents usingFileUtils.sizeOfDirectory(File)
SIZE_SUMDIR_REVERSE
public static final Comparator<File> SIZE_SUMDIR_REVERSE
Reverse size comparator instance which sums the size of a directory's contents usingFileUtils.sizeOfDirectory(File)
Constructor Detail
SizeFileComparator
public SizeFileComparator()
Construct a file size comparator instance (directories treated as zero size).
SizeFileComparator
public SizeFileComparator(boolean sumDirectoryContents)
Construct a file size comparator instance specifying whether the size of the directory contents should be aggregated.If the
sumDirectoryContents
istrue
The size of directories is calculated usingFileUtils.sizeOfDirectory(File)
.- Parameters:
-
sumDirectoryContents
-true
if the sum of the directories' contents should be calculated, otherwisefalse
if directories should be treated as size zero (seeFileUtils.sizeOfDirectory(File)
).
Method Detail
compare
public int compare(File file1, File file2)
Compare the length of two files.- Specified by:
-
compare
in interfaceComparator<File>
- Parameters:
-
file1
- The first file to compare -
file2
- The second file to compare - Returns:
- a negative value if the first file's length is less than the second, zero if the lengths are the same and a positive value if the first files length is greater than the second file.
toString
public String toString()
String representation of this file comparator.- Returns:
- String representation of this file comparator
sort
public File[] sort(File... files)
Sort an array of files.This method uses
Arrays.sort(Object[], Comparator)
and returns the original array.- Parameters:
-
files
- The files to sort, may be null - Returns:
- The sorted array
- Since:
- 2.0
sort
public List<File> sort(List<File> files)
Sort a List of files.This method uses
Collections.sort(List, Comparator)
and returns the original list.- Parameters:
-
files
- The files to sort, may be null - Returns:
- The sorted list
- Since:
- 2.0
Copyright © 2002–2021 The Apache Software Foundation. All rights reserved.