Java - File compareTo() 方法



描述

Java File compareTo(File pathname) 方法按字典顺序比较两个抽象路径名。此方法定义的排序取决于操作系统。

声明

以下是 java.io.File.compareTo(File pathname) 方法的声明:

public int compareTo(File pathname)

参数

pathname − 要与此抽象路径名进行比较的抽象路径名。

返回值

如果参数等于此抽象路径名,则此方法返回零;如果抽象路径名按字典顺序小于参数,则返回负值;如果大于参数,则返回大于 0 的值。

异常

示例 1

以下示例演示了 Java File compareTo() 方法的使用。我们创建了两个 File 引用。然后,我们使用 test.txt 和 test1.txt 文件创建这些 File 对象。使用 compareTo() 方法,我们按字典顺序比较每个文件的路径并打印结果。最后,我们打印比较的结果。

package com.tutorialspoint;
import java.io.File;
public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      File f1 = null;
      
      try {
         // create new files
         f = new File("File/test.txt");
         f1 = new File("File/test1.txt");
         
         // returns integer value
         int value = f.compareTo(f1);
         
         // prints
         System.out.print("Lexicographically, ");
         System.out.print("abstract path name test.txt");
         
         // if lexicographically, argument = abstract path name
         if(value == 0) {
            System.out.print(" = ");
         }
         
         // if lexicographically, argument < abstract path name
         else if(value > 0) {
            System.out.print(" > ");
         }
         
         // if lexicographically, the argument > abstract path name
         else {
            System.out.print(" < ");
         }
         
         // print
         System.out.println("abstract path name File/test1.txt");
         
         // prints the value returned by compareTo()
         System.out.print("Value returned: "+value);
         
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果 - 假设我们在给定位置拥有 test.txt 和 test1.txt 文件。

Lexicographically, abstract path name test.txt < abstract path name File/test1.txt
Value returned: -3

示例 2

以下示例演示了 Java File compareTo() 方法的使用。我们创建了两个 File 引用。然后,我们使用 test.txt 和 test1.txt 文件创建这些 File 对象。使用 compareTo() 方法,我们按字典顺序比较每个文件的路径并打印结果。在这里,我们更改了先前示例中文件比较的顺序。最后,我们打印比较的结果。

package com.tutorialspoint;
import java.io.File;
public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      File f1 = null;
      
      try {
         // create new files
         f = new File("File/test.txt");
         f1 = new File("File/test1.txt");
         
         // returns integer value
         int value = f1.compareTo(f);
         
         // prints
         System.out.print("Lexicographically, ");
         System.out.print("abstract path name test.txt");
         
         // if lexicographically, argument = abstract path name
         if(value == 0) {
            System.out.print(" = ");
         }
         
         // if lexicographically, argument < abstract path name
         else if(value > 0) {
            System.out.print(" > ");
         }
         
         // if lexicographically, the argument > abstract path name
         else {
            System.out.print(" < ");
         }
         
         // print
         System.out.println("abstract path name File/test1.txt");
         
         // prints the value returned by compareTo()
         System.out.print("Value returned: "+value);
         
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果 - 假设我们在给定位置拥有 test.txt 和 test1.txt 文件。

Lexicographically, abstract path name test.txt > abstract path name File/test1.txt
Value returned: 3

示例 3

以下示例演示了 Java File compareTo() 方法的使用。我们创建了两个 File 引用。然后,我们使用 test.txt 和 test2.txt 文件创建这些 File 对象。这里 test2.txt 不存在于给定位置。使用 compareTo() 方法,我们按字典顺序比较每个文件的路径并打印结果。最后,我们打印比较的结果。

package com.tutorialspoint;
import java.io.File;
public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      File f1 = null;
      
      try {
         // create new files
         f = new File("File/test.txt");
         f1 = new File("File/test2.txt");
         
         // returns integer value
         int value = f.compareTo(f1);
         
         // prints
         System.out.print("Lexicographically, ");
         System.out.print("abstract path name test.txt");
         
         // if lexicographically, argument = abstract path name
         if(value == 0) {
            System.out.print(" = ");
         }
         
         // if lexicographically, argument < abstract path name
         else if(value > 0) {
            System.out.print(" > ");
         }
         
         // if lexicographically, the argument > abstract path name
         else {
            System.out.print(" < ");
         }
         
         // print
         System.out.println("abstract path name File/test2.txt");
         
         // prints the value returned by compareTo()
         System.out.print("Value returned: "+value);
         
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果 - 假设我们在给定位置拥有 test.txt 文件,并且 test2.txt 不存在。

Lexicographically, abstract path name test.txt > abstract path name File/test2.txt
Value returned: -4
java_file_class.htm
广告

© . All rights reserved.