Java - File equals(Object obj) method



Description

The Java File equals(Object obj) method tests this abstract pathname for equality with the object as argument. Whether the two abstract pathnames are either equal or not depends on the operating system.

Declaration

Following is the declaration for java.io.File.equals(Object obj) method −

public boolean equals(Object obj)

Parameters

obj − The object to be compared to the abstract pathname

Return Value

The method returns true, if and only if the objects are the same; else false.

Exception

  • NA

Example - Usage of File equals(Object obj) method

The following example shows the usage of Java File equals(Object obj) method. We've created two File references. Then we're creating these File Objects using test.txt and test1.txt file. Using equals() method, we're comparing the paths of the same file lexicographically and printing the result. Then we're comparing two different files and printing the result.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      File f1 = null;
      boolean bool = false;
      
      try {
         // create new files
         f = new File("test.txt");
         f1 = new File("test1.txt");
         
         // returns result
         bool = f.equals(f);
         
         // prints
         System.out.println("Equal: "+bool);
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result assuming that we're having a test.txt and test1.txt file at the given location.

Equal: true

Example - Usage of File equals(Object obj) method

The following example shows the usage of Java File equals(Object obj) method. We've created two File references. Then we're creating these File Objects using test.txt and test1.txt file. Using equals() method, we're comparing two different files and printing the result.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      File f1 = null;
      boolean bool = false;
      
      try {
         // create new files
         f = new File("test.txt");
         f1 = new File("test1.txt");
         
         // returns result
         bool = f.equals(f1);
         
         // prints
         System.out.println("Equal: "+bool);
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result assuming that we're having a test.txt and test1.txt file at the given location.

Equal: false

Example - Usage of File equals(Object obj) method

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {
      // Creating two File objects pointing to the same file
      File file1 = new File("example.txt");
      File file2 = new File("example.txt");

      // Creating another File object pointing to a different file
      File file3 = new File("anotherFile.txt");

      // Comparing file1 and file2 (same file path)
      System.out.println("file1 equals file2: " + file1.equals(file2)); // true

      // Comparing file1 and file3 (different file path)
      System.out.println("file1 equals file3: " + file1.equals(file3)); // false
   }
}

Output

Let us compile and run the above program, this will produce the following result −

file1 equals file2: true
file1 equals file3: false

Explanation

  • Creating File Objectsfile1 and file2 both refer to "example.txt", meaning they represent the same file path.file3 refers to "anotherFile.txt", which is a different file.

  • Using equals(Object o)file1.equals(file2) returns true because both objects represent the same file path.file1.equals(file3) returns false because they point to different file paths.

Key Points

  • The equals() method in the File class checks whether the absolute file paths are the same, not whether the files actually exist.

  • It does not compare file contents, only the file path.

  • Case sensitivity depends on the operating system−

    • Windows (case-insensitive): "C:\\file.txt" is equal to "c:\\FILE.TXT"

    • Linux/macOS (case-sensitive): "file.txt" is not equal to "FILE.TXT"

java_io_file_methods.htm
Advertisements