要下载的文件扩展名类型



如何确定要下载的文件的文件扩展名?我正在使用下面的代码下载文件。

URL url = new URL("http://server.com/file.format");
DefaultHttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), null));
InputStream in = client.execute(get).getEntity().getContent();
//... read input stream and save to file

我查看了其他相关线程,但我找不到解决问题的方法。

在互联网上,在Unix世界中,没有强制性的文件扩展名这样的东西。这是一种典型的窗口世界的思维方式。

在HTTP中,最接近"文件扩展名"的是MIME类型。它是实际的内容类型描述,例如 text/htmlimage/gif .但是HTTP不提供文件扩展名。您必须自己将 MIME 类型映射到文件扩展名!

如果我理解正确,您的示例中的扩展是"格式"。换句话说,它位于用于创建用于请求文件的 URL 的字符串中。若要从用于使 URL 使用的传入文件字符串中获取扩展名,请执行以下操作:

str.substring(str.lastIndexOf('.')+1)  

[已编辑]

最新更新