org.apache.commons.io.comparator
Class SizeFileComparator

java.lang.Object
  extended by 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 (see File.length() and FileUtils.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 = ...
       SizeFileComparator.SIZE_COMPARATOR.sort(list);
 

Example of doing a reverse sort of an array of files using the SIZE_REVERSE singleton instance:

       File[] array = ...
       SizeFileComparator.SIZE_REVERSE.sort(array);
 

N.B. Directories are treated as zero size unless sumDirectoryContents is true.

Since:
1.4
Version:
$Id: SizeFileComparator.java 1304052 2012-03-22 20:55:29Z ggregory $
See Also:
Serialized Form

Field Summary
static Comparator<File> SIZE_COMPARATOR
          Size comparator instance - directories are treated as zero size
static Comparator<File> SIZE_REVERSE
          Reverse size comparator instance - directories are treated as zero size
static Comparator<File> SIZE_SUMDIR_COMPARATOR
          Size comparator instance which sums the size of a directory's contents using FileUtils.sizeOfDirectory(File)
static Comparator<File> SIZE_SUMDIR_REVERSE
          Reverse size comparator instance which sums the size of a directory's contents using FileUtils.sizeOfDirectory(File)
 
Constructor Summary
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
 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
equals
 

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 using FileUtils.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 using FileUtils.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 is true The size of directories is calculated using FileUtils.sizeOfDirectory(File).

Parameters:
sumDirectoryContents - true if the sum of the directoryies contents should be calculated, otherwise false if directories should be treated as size zero (see FileUtils.sizeOfDirectory(File)).
Method Detail

compare

public int compare(File file1,
                   File file2)
Compare the length of two files.

Specified by:
compare in interface Comparator<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-2012 The Apache Software Foundation. All Rights Reserved.