java 扩展名读取_Java 解析文件后缀名(扩展名)的几种方法

1、使用FilenameUtils.getExtension来获取扩展名

maven配置:

commons-io

commons-io

2.4

String ext1 = FilenameUtils.getExtension("/path/to/file/foo.txt"); //returns "txt"

String ext2 = FilenameUtils.getExtension("bar.exe"); //returns "exe"

2、通过使用lastIndexOf和substring方法来得到扩展名String extension = "";

int i = fileName.lastIndexOf('.');

if (i > 0) {

extension = fileName.substring(i+1);

}

或String extension = "";

int i = fileName.lastIndexOf('.');

int p = Math.max(fileName.lastIndexOf('/'), fileName.lastIndexOf('\\'));

if (i > p) {

extension = fileName.substring(i+1);

}

3、使用Guava库的Files工具类获取扩展名

maven配置:

com.google.guava

guava

17.0

String path = "c:/path/to/file/foo.txt";

String ext = Files.getFileExtension(path);

System.out.println(ext); //prints txt

4、Android上可以使用的方法String ext = android.webkit.MimeTypeMap.getFileExtensionFromUrl(file.getName());

5、经过测试的getExtension获取扩展名方法public static String getExtension(String fileName){

char ch;

int len;

if(fileName==null ||

(len = fileName.length())==0 ||

(ch = fileName.charAt(len-1))=='/' || ch=='\\' || //in the case of a directory

ch=='.' ) //in the case of . or ..

return "";

int dotInd = fileName.lastIndexOf('.'),

sepInd = Math.max(fileName.lastIndexOf('/'), fileName.lastIndexOf('\\'));

if( dotInd<=sepInd )

return "";

else

return fileName.substring(dotInd+1).toLowerCase();

}

测试用例@Test

public void testGetExtension(){

assertEquals("", getExtension("C"));

assertEquals("ext", getExtension("C.ext"));

assertEquals("ext", getExtension("A/B/C.ext"));

assertEquals("", getExtension("A/B/C.ext/"));

assertEquals("", getExtension("A/B/C.ext/.."));

assertEquals("bin", getExtension("A/B/C.bin"));

assertEquals("hidden", getExtension(".hidden"));

assertEquals("dsstore", getExtension("/user/home/.dsstore"));

assertEquals("", getExtension(".strange."));

assertEquals("3", getExtension("1.2.3"));

assertEquals("exe", getExtension("C:\\Program Files (x86)\\java\\bin\\javaw.exe"));

}

6、使用split方法来获取后缀名String[] split = fullFileName.split("\\.");

String ext = split[split.length - 1];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值