How to Extract File Extension From a File Path String in Java?
In Java, working with Files is common, and knowing how to extract file extensions from file paths is essential for making informed decisions based on file types.
In this article, we will explore techniques for doing this efficiently, empowering developers to improve their file-related operations.
Program to extract file extension from a file path String in Java
Below are the three methods and their implementations to extract file extension from a file path String.
1. A Simple Method in Java
Implementation:
Java
import java.io.File; public class Code { public static void main(String[] args) { String filepath = "example.txt" ; // Print filename and extension for the given // filepath printFileNameAndExtension(filepath); filepath = "/path/to/your/file/example.pdf" ; printFileNameAndExtension(filepath); filepath = "no_extension_file" ; printFileNameAndExtension(filepath); } // Function to print filename and extension for the // given filepath public static void printFileNameAndExtension(String filepath) { // Print filename and extension for the given // filepath System.out.println( "Filename and Extension: " + filepath); // Get and print the extension for the given // filepath String extension = getFileExtension(filepath); System.out.println( "Extension: " + extension); } // Function to get the extension from a file path public static String getFileExtension(String filePath) { int lastIndexOfDot = filePath.lastIndexOf( '.' ); if (lastIndexOfDot == - 1 ) { return "No extension" ; } return filePath.substring(lastIndexOfDot + 1 ); } } |
Output
Filename and Extension: example.txt Extension: txt Filename and Extension: /path/to/your/file/example.pdf Extension: pdf Filename and Extension: no_extension_file Extension: No extension
Method Overview:
- The method getFileExtension takes a file path as input.
- It utilizes the lastIndexOf method to find the last occurrence of the dot (‘.’) character in the file path.
- If no dot is found (lastIndexOfDot == -1), it means there is no file extension, and “No extension” is returned.
- Otherwise, it extracts the substring from the index after the last dot to the end of the file path, effectively giving the file extension.
Usage:
- Example file paths are provided to showcase the method in action.
- The results are printed, demonstrating how the method accurately extracts file extensions.
- Handles cases where no extension is present, returning an appropriate message.
2. Extracting File Extensions Using Java’s File Class
Implementation:
Java
import java.io.File; // Driver Class public class Code2 { // Main Function public static void main(String[] args) { String filepath = "example.txt" ; // It will print file name and extension printFileNameAndExtension(filepath); filepath = "/path/to/your/file/example.pdf" ; //It will print filename and extension for given filepath printFileNameAndExtension(filepath); filepath = "no_extension_file" ; printFileNameAndExtension(filepath); } // function for printing file name and extension public static void printFileNameAndExtension(String filepath) { System.out.println( "Filename and Extension: " + filepath); String ans = getFileExtension(filepath); System.out.println( "Extension: " + ans); } // function to get the extension from path public static String getFileExtension(String filePath) { String fileName = new File(filePath).getName(); int dotIndex = fileName.lastIndexOf( '.' ); return (dotIndex == - 1 ) ? "No extension" : fileName.substring(dotIndex + 1 ); } } |
Output
Filename and Extension: example.txt Extension: txt Filename and Extension: /path/to/your/file/example.pdf Extension: pdf Filename and Extension: no_extension_file Extension: No extension
Method Overview:
- Utilizes the File class to obtain the file name from the given file path.
- Uses lastIndexOf method to find the last occurrence of the dot (‘.’) character in the file name.
- If no dot is found (dotIndex == -1), it returns “No extension.”
- Otherwise, it extracts the substring from the index after the last dot to the end of the file name, effectively giving the file extension.
Usage:
- Demonstrates the method’s effectiveness in extracting file extensions.
- Handles cases where no extension is present, providing a clear and appropriate message.
3. Extracting File Extensions Using Java NIO’s Path class
Implementation:
Java
import java.nio.file.Path; import java.nio.file.Paths; public class Code3 { public static void main(String[] args) { String filepath = "example.txt" ; // Print filename and extension for the given filepath printFileNameAndExtension(filepath); filepath = "/path/to/your/file/example.pdf" ; printFileNameAndExtension(filepath); filepath = "no_extension_file" ; printFileNameAndExtension(filepath); } // Function to print filename and extension for the given filepath public static void printFileNameAndExtension(String filepath) { // Convert filepath to Path Path path = Paths.get(filepath); // Get the filename from the Path String fileName = path.getFileName().toString(); // Print filename System.out.println( "Filename and Extension: " + fileName); // Get and print the extension for the filename String extension = getFileExtension(fileName); System.out.println( "Extension: " + extension); } // Function to get the extension from a filename public static String getFileExtension(String fileName) { // Find the last occurrence of '.' in the filename int dotIndex = fileName.lastIndexOf( '.' ); // If '.' is not found, return "No extension", otherwise return the substring after '.' return (dotIndex == - 1 ) ? "No extension" : fileName.substring(dotIndex + 1 ); } } |
Output
Filename and Extension: example.txt Extension: txt Filename and Extension: example.pdf Extension: pdf Filename and Extension: no_extension_file Extension: No extension
Method Overview:
- Paths.get(String) Method: Creates a Path object representing the file or directory located at the specified path.
- Path.getFileName() Method: Retrieves the file or directory name represented by this Path.
- String.lastIndexOf(char) Method: Returns the index of the last occurrence of the specified character, or 1 if the character is not found.
- String.substring(int) Method: Returns a new string that is a substring of this string, starting from the specified index.
Usage:
- Creating Path Object: Use Paths.get(String) to create a Path object representing the file or directory.
- Extracting File Name: Call getFileName() on the Path object to obtain the file or directory name as a string.
- Finding Extension: Use lastIndexOf(‘.’) to locate the last occurrence of the dot (.) in the file name, indicating the start of the file extension.
- Extracting Extension: Apply substring(dotIndex + 1) to get the substring starting from the index after the dot, representing the file extension.
- Handling No Extension: Check if lastIndexOf(‘.’) returns 1; if true, there is no extension, and handle accordingly (e.g., set a default message or process).
Contact Us