迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

如何在 Java 中获取文件的文件扩展名

作者:迹忆客 最近更新:2023/08/14 浏览次数:

本文介绍了如何在 Java 中获取文件的文件扩展名,还列举了一些示例代码来理解这个话题。


使用 Java 中的 getExtension() 方法获取文件扩展名

要获得文件的扩展名,我们可以使用 FilenameUtils 类的 getExtension() 方法。这个方法返回文件的扩展名。由于这个方法属于 Apache commons 库,所以你必须从 Apache 官网下载这个库才能在项目中使用 JAR。

import org.apache.commons.io.FilenameUtils;

public class SimpleTesting {
	public static void main(String[] args){
		String fileName = "student-records.pdf";
		String fe = FilenameUtils.getExtension(fileName);
		System.out.println("File extension is : "+fe);
	}
}

输出:

File extension is : pdf

用 Java 中的 lastIndexOf() 方法获取文件的扩展名

如果你不想使用任何内置的方法,那么使用给定的代码示例,使用 lastIndexOf() 方法来获取文件扩展名。这是最简单易行的方法,只涉及字符串方法。请看下面的例子。

public class SimpleTesting {
	public static void main(String[] args){
		String fileName = "student-records.pdf";
		String fe = "";
		int i = fileName.lastIndexOf('.');
		if (i > 0) {
		    fe = fileName.substring(i+1);
		}
		System.out.println("File extension is : "+fe);
	}
}

输出:

File extension is : pdf

用 Java 中的字符串解析获取文件的文件扩展名

这是另一种解决方案,包括几种情况,其中包括(如果文件路径中有点 .)。即使文件路径之间有点(.),这种方法也会返回准确的结果。请看下面的例子。

public class SimpleTesting {
	public static void main(String[] args){
		String fileName = "folder\s.gr\fg\student-records.pdf";
		String fe = "";
		char ch;
		int len;
		if(fileName==null || (len = fileName.length())==0 || (ch = fileName.charAt(len-1))=='/' || ch=='\\' ||ch=='.' ) {
			fe = "";
		}
		int dotInd = fileName.lastIndexOf('.'),	sepInd = Math.max(fileName.lastIndexOf('/'), fileName.lastIndexOf('\\'));
		if( dotInd <= sepInd ) {
			fe = "";
		}
		else {
			fe = fileName.substring(dotInd+1).toLowerCase();
		}
		System.out.println("File extension is : "+fe);
	}
}

输出:

File extension is : pdf

使用 Java 中的 replaceAll() 方法获取文件的文件扩展名

我们可以使用 replaceAll() 方法来获取文件扩展名,就像我们在下面的例子中所做的那样。我们在这个方法中使用正则表达式并将结果收集到一个变量中。

public class SimpleTesting {
	public static void main(String[] args){
		String fileName = "folder\s.gr\fg\student-records.pdf";
		String fe = "";
		fe = fileName.replaceAll("^.*\\.(.*)$", "$1");
		System.out.println("File extension is : "+fe);
	}
}

输出:

File extension is : pdf

在 Java 中使用 contains()lastIndexOf() 方法获取文件扩展名

contains() 方法用于检查指定的字符是否存在于字符串中,lastIndexOf() 方法返回指定字符的索引值,该索引值被传递到 substring() 方法中以获取文件扩展名。我们在这段代码中使用这些方法来获取文件扩展名。请看下面的例子。

public class SimpleTesting {
	public static void main(String[] args){
		String fileName = "folder\s.gr\fg\student-records.pdf";
		String fe = "";
		if (fileName.contains("."))
		     fe = fileName.substring(fileName.lastIndexOf(".")+1);
		System.out.println("File extension is : "+fe);
	}
}

输出:

File extension is : pdf

使用 Java 中的三元运算符获取文件扩展名

如果你对三元运算符(?, :)很熟悉,那么就把它和 substring()lastIndexOf() 方法一起使用。它减少了代码的行数,并在一条语句中返回结果。

public class SimpleTesting {
	public static void main(String[] args){
		String fileName = "folder\s.gr\fg\student-records.pdf";
		String fe = "";
		if (fileName.contains(".")) {
			int i = fileName.lastIndexOf('.');
			fe = i > 0 ? fileName.substring(i + 1) : "";
		}
		System.out.println("File extension is : "+fe);
	}
}

输出:

File extension is : pdf

在 Java 中使用 stream() 方法获取文件的文件扩展名

我们可以使用 Arrays 类的 stream() 方法将文件名转换成流,并使用 split() 方法将文件名从点(.)中断开。请看下面的例子。

import java.util.Arrays;
public class SimpleTesting {
	public static void main(String[] args){
		String fileName = "folder\s.gr\fg\student-records.pdf";
		String fe = "";
		if (fileName.contains(".")) {
			fe = Arrays.stream(fileName.split("\\.")).reduce((a,b) -> b).orElse(null);
		}
		System.out.println("File extension is : "+fe);
	}
}

输出:

File extension is : pdf

使用 Java 中的 Regex 获取文件的文件扩展名

这是另一个使用 regex 包的解决方案。在这个 Java 例子中,Pattern 类的 compile()matcher() 方法被用来获取文件的扩展名。请看下面的例子。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SimpleTesting {
	public static void main(String[] args){
		String fileName = "folder\s.gr\fg\student-records.pdf";
		String fe = "";
		final Pattern PATTERN = Pattern.compile("(.*)\\.(.*)");
		Matcher m = PATTERN.matcher(fileName);
		if (m.find()) {
			fe = m.group(2);
		}
		System.out.println("File extension is : "+fe);
	}
}

输出:

File extension is : pdf

上一篇:如何在 Java 中获取当前工作目录

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中获取当前工作目录

发布时间:2023/08/14 浏览次数:88 分类:Java

本文介绍了如何获取当前工作目录,并列举了一些示例代码来理解。获取当前工作目录的方法有几种,这里我们用到了 System.getProperty()、toAbsolutePath() 和 FileSystems.getDefault() 等方法。我们来看看

如何在 Java 中检查文件是否存在

发布时间:2023/08/14 浏览次数:80 分类:Java

本文将介绍 Java 中检查文件是否存在的几种简单方法。当我们想知道指定的文件是否存在时,我们将使用不同的包和类。

如何在 Java 中读取 XML 文件

发布时间:2023/08/14 浏览次数:155 分类:Java

在本文中,我们将学习如何通过使用诸如 DOM Parser,XML Parser,jdom2,dom4j 之类的某些库将 XML 文件解析为 Java 应用程序。XML 代表 Extensible Markup Language,用于在应用程序中传递数据。

在 Java 中重命名文件

发布时间:2023/08/14 浏览次数:94 分类:Java

本文介绍了如何在 Java 中重命名文件,并列出了一些示例代码,以便你进一步了解该主题。在 Java 中重命名文件非常容易,因为 Java 在 java.io 包中提供了几个内置方法。

用 Java 读取文本文件

发布时间:2023/08/14 浏览次数:78 分类:Java

在本文中,我们将学习如何使用 Java 读取文本文件。在 Java 中使用 Scanner 类读取文件 Scanner 类可以读取 Java 中的文件。首先,创建一个 File 对象来表示所需文件的路径。

在 Java 中将文本附加到另外文本文件

发布时间:2023/08/14 浏览次数:192 分类:Java

本文介绍了如何在 Java 中向一个现有的文本文件追加文本。我们还列出了一些示例代码以更好地指导你。读取和写入是你在处理文件时可以执行的两项最基本的操作。在 Java 中有多种方法可以将

Java 打开文件

发布时间:2023/08/14 浏览次数:68 分类:Java

在 Java 中有多种打开文件的方法。我们将在本文中讨论其中的几种。在 Java 中使用 Desktop 类打开文件

在 Java 中复制文件

发布时间:2023/08/12 浏览次数:59 分类:Java

本文介绍如何在 Java 中将文件从一个位置复制到另一个位置。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便