【发布时间】:2011-04-04 00:40:45
【问题描述】:
为了清楚起见,我不是在寻找 MIME 类型。
假设我有以下输入:/path/to/file/foo.txt
我想要一种方法来分解此输入,特别是扩展名为 .txt。在 Java 中有没有内置的方法来做到这一点?我想避免编写自己的解析器。
【问题讨论】:
-
你永远不知道什么时候会出现一些将扩展定义为用逗号分隔的新平台。现在您需要编写平台相关的代码。 Java 框架应该更具前瞻性,并具有用于获取扩展的 API,它们编写依赖于平台的代码,而作为 API 的用户,您只需说获取扩展。
-
@ArtOfWarfare:天啊。让我们创建一个包含数千个类的 100MB JRE,但请确保不要实现任何从
"filename.txt"返回"txt"的方法,因为某个平台可能想要使用"filename,txt"。 -
@EricDuminil "确保不要实现任何从 "filename.txt" 返回 "txt" 的方法" ???试试
path.substring(path.lastIndexOf("."));..... 是的.. 他们肯定不会白白复制一些东西... -
@VelocityPulse 这正是正是困扰我的。由于没有获取文件扩展名的标准方法,因此您会得到几十个半错误的答案和略有不同的实现。您的代码使用 2 种方法(我希望有 one 单个显式方法),它从
"filename.txt"返回".txt",这可能不是预期的结果,最糟糕的是,它如果没有扩展名,则返回StringIndexOutOfBoundsException而不是返回空字符串。