Class ExtensionFileComparator

java.lang.Object
org.apache.commons.io.comparator.AbstractFileComparator
org.apache.commons.io.comparator.ExtensionFileComparator
All Implemented Interfaces:
Serializable, Comparator<File>

public class ExtensionFileComparator extends AbstractFileComparator implements Serializable
Compare the file name extensions for order (see FilenameUtils.getExtension(String)).

This comparator can be used to sort lists or arrays of files by their file extension either in a case-sensitive, case-insensitive or system dependent case-sensitive way. A number of singleton instances are provided for the various case sensitivity options (using IOCase) and the reverse of those options.

Example of a case-sensitive file extension sort using the EXTENSION_COMPARATOR singleton instance:

       List<File> list = ...
       ((AbstractFileComparator) ExtensionFileComparator.EXTENSION_COMPARATOR).sort(list);
 

Example of a reverse case-insensitive file extension sort using the EXTENSION_INSENSITIVE_REVERSE singleton instance:

       File[] array = ...
       ((AbstractFileComparator) ExtensionFileComparator.EXTENSION_INSENSITIVE_REVERSE).sort(array);
 

Deprecating Serialization

Serialization is deprecated and will be removed in 3.0.

Since:
1.4
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • EXTENSION_COMPARATOR

      public static final Comparator<File> EXTENSION_COMPARATOR
      Case-sensitive extension comparator instance (see IOCase.SENSITIVE)
    • EXTENSION_REVERSE

      public static final Comparator<File> EXTENSION_REVERSE
      Reverse case-sensitive extension comparator instance (see IOCase.SENSITIVE)
    • EXTENSION_INSENSITIVE_COMPARATOR

      public static final Comparator<File> EXTENSION_INSENSITIVE_COMPARATOR
      Case-insensitive extension comparator instance (see IOCase.INSENSITIVE)
    • EXTENSION_INSENSITIVE_REVERSE

      public static final Comparator<File> EXTENSION_INSENSITIVE_REVERSE
      Reverse case-insensitive extension comparator instance (see IOCase.INSENSITIVE)
    • EXTENSION_SYSTEM_COMPARATOR

      public static final Comparator<File> EXTENSION_SYSTEM_COMPARATOR
      System sensitive extension comparator instance (see IOCase.SYSTEM)
    • EXTENSION_SYSTEM_REVERSE

      public static final Comparator<File> EXTENSION_SYSTEM_REVERSE
      Reverse system sensitive path comparator instance (see IOCase.SYSTEM)
    • ioCase

      private final IOCase ioCase
      Whether the comparison is case-sensitive.
  • Constructor Details

    • ExtensionFileComparator

      public ExtensionFileComparator()
      Constructs a case-sensitive file extension comparator instance.
    • ExtensionFileComparator

      public ExtensionFileComparator(IOCase ioCase)
      Constructs a file extension comparator instance with the specified case-sensitivity.
      Parameters:
      ioCase - how to handle case sensitivity, null means case-sensitive
  • Method Details

    • compare

      public int compare(File file1, File file2)
      Compares the extensions of two files the specified case sensitivity.
      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 extension is less than the second, zero if the extensions are the same and a positive value if the first files extension is greater than the second file.
    • toString

      public String toString()
      String representation of this file comparator.
      Overrides:
      toString in class AbstractFileComparator
      Returns:
      String representation of this file comparator