如何获取文件扩展名

JavaBeginner
立即练习

介绍

在这个逐步指导的实验中,我们将学习如何在 Java 编程语言中获取文件的扩展名。文件的扩展名表示其类型,这有助于我们区分不同类型的文件,例如 pdf、txt、doc 等。在处理文件时,获取文件扩展名非常重要,因为它有助于确保以正确的方式处理正确的文件类型。

创建一个 Java 文件

使用以下命令创建一个新的 Java 文件:

touch ~/project/FileExtension.java

定义 Java 类

import java.io.IOException;

public class FileExtension {
    public static void main(String[] args) throws IOException {

    }
}

定义 Main 方法

在这一步中,我们将定义主方法以接受用户输入的文件名并提取其扩展名。

import java.io.IOException;

public class FileExtension {
    public static void main(String[] args) throws IOException {
        if (args.length > 0) {
            String filename = args[0];
            int index = filename.lastIndexOf(".");
            if (index > 0) {
                String extension = filename.substring(index + 1);
                System.out.println("File extension: " + extension);
            } else {
                System.out.println("No file extension found");
            }
        } else {
            System.out.println("Please provide a filename");
        }
    }
}

在上述代码块中,我们检查用户是否提供了文件名。如果未提供文件名,则会提示用户输入文件名。然后,我们使用 lastIndexOf() 方法获取文件名中最后一个点的索引,该点标志着扩展名的开始。如果在文件名中未找到点,则表明该文件没有扩展名。在这两种情况下,我们都会通过命令行输出通知用户。

编译 Java 代码

要编译 Java 代码,请在终端中运行以下命令:

javac ~/project/FileExtension.java

运行 Java 程序

要执行 Java 程序,请运行以下命令:

java FileExtension filename.extension

其中 filename.extension 是你想要获取文件扩展名的文件的路径和名称。

测试 Java 程序

让我们通过使用不同的文件扩展名多次执行程序来测试它:

java FileExtension document.txt
java FileExtension image.png
java FileExtension music.mp3

处理多文件扩展名

一个文件可能包含多个扩展名,用点号分隔,例如 .tar.gz.tar.bz2。在这些情况下,我们可以按照以下方式修改第 3 步中的代码。

import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        if (args.length > 0) {
            String filename = args[0];
            int index = filename.indexOf(".");
            int lastIndex = filename.lastIndexOf(".");
            if (index > 0 && lastIndex > 0 && lastIndex > index) {
                String extension = filename.substring(lastIndex + 1);
                System.out.println("File Extension: ." + extension);
            } else {
                System.out.println("No file extension found");
            }
        } else {
            System.out.println("Please provide a filename");
        }
    }
}

在上述代码块中,我们首先检查文件名是否包含多个点号以识别多个扩展名。如果找到多个点号,我们通过使用 lastIndexOf() 方法并额外加 1 来移除点号,从而提取最后一个扩展名。

编译 Java 代码

在终端中使用以下命令编译 Java 代码:

javac ~/project/FileExtension.java

测试 Java 程序

让我们通过使用多个文件扩展名执行程序来测试它,如下所示:

java FileExtension document.pdf
java FileExtension image.png
java FileExtension music.mp3
java FileExtension archive.tar.gz

总结

在本实验中,我们学习了如何在 Java 编程语言中获取文件的扩展名。我们编写了一个 Java 程序,该程序接受用户输入的文件名并提取其扩展名以确定文件类型。我们还演示了如何使用 indexOf()lastIndexOf() 方法来处理具有多个扩展名的文件。