Java如何获取文件扩展名?

下面是一个可用于获取文件扩展名的示例。下面的代码假定扩展名是文件名的最后一部分,位于最后一个点符号之后。例如,如果您有一个名为data.txt扩展名的文件将是txt,但如果您有一个名为data.tar.gz扩展名的文件将是gz。

package org.nhooo.example.io;

import java.io.File;

public class FileExtension {
    private static final String EXT_SEPARATOR = ".";

    public static void main(String[] args) {
        File file = new File("data.txt");
        String ext = FileExtension.getFileExtension(file);
        System.out.println("Ext = " + ext);

        file = new File("C:/Data/Employee/data.tar.gz");
        ext = FileExtension.getFileExtension(file);
        System.out.println("Ext = " + ext);

        file = new File("/home/nhooo/nhooo.org/FileDemo.java");
        ext = FileExtension.getFileExtension(file);
        System.out.println("Ext = " + ext);
    }

    /**
     * Get the extension of the specified file.
     * @param file a file.
     * @return the extension of the file.
     */
    private static String getFileExtension(File file) {
        if (file == null) {
            return null;
        }

        String name = file.getName();
        int extIndex = name.lastIndexOf(FileExtension.EXT_SEPARATOR);

        if (extIndex == -1) {
            return "";
        } else {
            return name.substring(extIndex + 1);
        }
    }
}