Java - File compareTo() 方法



描述

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

声明

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

public int compareTo(File pathname)

Learn Java in-depth with real-world projects through our Java certification course. Enroll and become a certified expert to boost your career.

参数

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

返回值

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

异常

示例 1

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

Open Compiler
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() 方法,我们按字典顺序比较每个文件的路径并打印结果。在这里,我们更改了先前示例中文件比较的顺序。最后,我们打印比较的结果。

Open Compiler
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() 方法,我们按字典顺序比较每个文件的路径并打印结果。最后,我们打印比较的结果。

Open Compiler
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
广告