猿问

如何在Java中获得文件扩展名?

如何在Java中获得文件扩展名?

我不是在找哑剧类型。

假设我有以下输入:/path/to/file/foo.txt

我想找一种方法来分解这个输入,特别是.txt为了分机。是否有在Java中构建的方法来实现这一点?我想避免编写自己的解析器。


慕无忌1623718
浏览 1922回答 3
3回答

喵喔喔

在这种情况下,使用FilenameUtils.getExtenence从…ApacheCommonsIO下面是如何使用它的示例(您可以指定完整路径或仅指定文件名):String ext1 = FilenameUtils.getExtension("/path/to/file/foo.txt"); // returns "txt" String ext2 = FilenameUtils.getExtension("bar.exe"); // returns "exe"

慕容708150

你真的需要一个“解析器”吗?String extension = "";int i = fileName.lastIndexOf('.');if (i > 0) {     extension = fileName.substring(i+1);}假设您处理的是类似Windows的简单文件名,而不是类似于archive.tar.gz.顺便说一下,对于目录可能有“.”的情况,但是文件名本身没有(例如/path/to.a/file),你可以String extension = "";int i = fileName.lastIndexOf('.');int p = Math.max(fileName.lastIndexOf('/'), fileName.lastIndexOf('\\'));if (i > p) {     extension = fileName.substring(i+1);}

慕沐林林

private String getFileExtension(File file) {     String name = file.getName();     int lastIndexOf = name.lastIndexOf(".");     if (lastIndexOf == -1) {         return ""; // empty extension     }     return name.substring(lastIndexOf);}
随时随地看视频慕课网APP

相关分类

Java
我要回答