Java - File deleteOnExit() method



Description

The Java File deleteOnExit() method deletes the file or directory defined by the abstract path name when the virtual machine terminates. Files or directories are deleted in the reverse order as they are registered.

Declaration

Following is the declaration for java.io.File.deleteOnExit() method −

public void deleteOnExit()

Parameters

NA

Return Value

The method does not return any value.

Exception

  • SecurityException − If SecurityManager.checkWrite(java.lang.String) method does not allow a file to be created

Example - Usage of File deleteOnExit() method

The following example shows the usage of Java File deleteOnExit() method. We've created a File reference. Using createTempFile() method, we're creating the file in temporary directory and printing the absolute path of the file created. We're calling deleteOnExit() method to delete the file once virtual machine terminates.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
            
      try {
         // creates temporary file
         f = File.createTempFile("tmp", ".txt");
         
         // prints absolute path
         System.out.println("File path: "+f.getAbsolutePath());
         
         // deletes file when the virtual machine terminate
         f.deleteOnExit();         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

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

File path: /tmp/tmp861034796011957714.txt

You can check at the relevant path, if file is deleted or not once program terminates. The temporary file will not be present.

Example - Usage of File deleteOnExit() method

The following example shows the usage of Java File deleteOnExit() method. We've created a File reference. Using createTempFile() method, we're creating the temporary file with no suffix in temporary directory and printing the absolute path of the file created. We're calling deleteOnExit() method to delete the file once virtual machine terminates.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
            
      try {
         // creates temporary file
         f = File.createTempFile("tmp", null);
         
         // prints absolute path
         System.out.println("File path: "+f.getAbsolutePath());
         
         // deletes file when the virtual machine terminate
         f.deleteOnExit();         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

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

File path: /tmp/tmp9737469160324392685.tmp

You can check at the relevant path, if file is deleted or not once program terminates. The temporary file will not be present.

Example - Usage of File deleteOnExit() method

FileDemo.java

package com.tutorialspoint;

import java.io.File;
import java.io.IOException;

public class FileDemo {
   public static void main(String[] args) {
      try {
         // Create a temporary file
         File tempFile = new File("tempfile.txt");

         // Check if file is created
         if (tempFile.createNewFile()) {
            System.out.println("Temporary file created: " + tempFile.getAbsolutePath());

            // Mark the file to be deleted on JVM exit
            tempFile.deleteOnExit();
            System.out.println("File will be deleted on exit.");
         } else {
            System.out.println("File already exists.");
         }
      } catch (IOException e) {
         System.out.println("An error occurred.");
         e.printStackTrace();
      }
   }
}

Output

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

Temporary file created: C:\Users\Saikat\tempfile.txt
File will be deleted on exit.

Explanation

  • Creating a File− The program creates a file named tempfile.txt in the current directory using new File("tempfile.txt"). The createNewFile() method ensures the file is created.

  • Marking for Deletion− The deleteOnExit() method is called on tempFile, ensuring that the file will be deleted automatically when the program terminates.

  • Program Termination− Once the JVM exits (either normally or due to an unhandled exception), the file will be deleted.

Key Points

  • The file is not deleted immediately; it remains available until the JVM shuts down.

  • If multiple files are marked for deletion using deleteOnExit(), they will be deleted in the reverse order of registration.

  • This method is useful for handling temporary files without manual deletion.

java_io_file_methods.htm
Advertisements