Java获取文件扩展名

java.io.File不提供任何直接获取extension文件的方法。当您想根据其扩展名以不同方式处理文件时使用此选项。我从事过一个需要这种实用方法的项目。有两种简单的方法来获得它。

1.使用简单的字符串处理程序
2.使用Apache io

使用简单的字符串处理程序

创建一个简单的 java 类,命名为GetExtensionOfFileMain.java

package org.arpit.code8cn;
 
import java.io.File;
 
public class GetExtensionOfFileMain {
 
    public static void main(String[] args)
    {
        ClassLoader classLoader = GetExtensionOfFileMain.class.getClassLoader();
 
        File xlsxFile=new File(classLoader.getResource("Countries.xlsx").getFile());
        String fileExtension=getExtensionOfFile(xlsxFile);
        System.out.println("File extension for Countries.xlsx is "+ fileExtension);
 
        File csvFile=new File(classLoader.getResource("Capital.csv").getFile());;
        String fileExtensionCSV=getExtensionOfFile(csvFile);
        System.out.println("File extension for Captial.csv is "+fileExtensionCSV);
 
        File folder=new File("src/main/resources");
        String fileExtensionFolder=getExtensionOfFile(folder);
        System.out.println("File extension for src/main/resources is "+fileExtensionFolder);
    }
 
    public static String getExtensionOfFile(File file)
    {
        String fileExtension="";
        // Get file Name first
        String fileName=file.getName();
 
        // If fileName do not contain "." or starts with "." then it is not a valid file
        if(fileName.contains(".") && fileName.lastIndexOf(".")!= 0)
        {
            fileExtension=fileName.substring(fileName.lastIndexOf(".")+1);
        }
 
        return fileExtension;
    }
}
 

当你运行上面的程序时,你会得到以下输出:

Country.xlsx 的文件扩展名是 xlsx
Captial.csv 的文件扩展名是 csv
src/main/resources 的文件扩展名是

如您所见,通过使用 [String’s contains()](https://code8cn.com/java-string-contains-ignorecase/ “String’s contains()”) 和 [lastIndexOf()](https://code8cn. com/java-string-lastindexof-example/ “lastIndexOf()”),我们可以在 java 中获取文件的扩展名。

使用 Apache io

您需要下载 Apcahe io jar 并将其放入类路径。
完成上述步骤后,您只需要调用FilenameUtils.getExtension()以检索 java 中的文件扩展名。

package org.arpit.code8cn;
 
import java.io.File;
 
import org.apache.commons.io.FilenameUtils;
 
public class GetFileExtensionApache {
 
    public static void main(String[] args)
    {
        ClassLoader classLoader = GetFileExtensionApache.class.getClassLoader();
 
        File xlsxFile=new File(classLoader.getResource("Countries.xlsx").getFile());
        String fileExtension=FilenameUtils.getExtension(xlsxFile.getName());
        System.out.println("File extension for Countries.xlsx is "+ fileExtension);
 
        File csvFile=new File(classLoader.getResource("Capital.csv").getFile());;
        String fileExtensionCSV=FilenameUtils.getExtension(csvFile.getName());
        System.out.println("File extension for Captial.csv is "+fileExtensionCSV);
 
        File folder=new File("src/main/resources");
        String fileExtensionFolder=FilenameUtils.getExtension(folder.getName());
        System.out.println("File extension for src/main/resources is "+fileExtensionFolder);
    }
 
}
 

当您运行上述程序时,您将获得以下输出:

Country.xlsx 的文件扩展名是 xlsx
Captial.csv 的文件扩展名是 csv
src/main/resources 的文件扩展名是

这就是java获取文件扩展名的全部内容。