Java获取URL链接的文件类型
来源:互联网 发布:2010年总决赛科比数据 编辑:程序博客网 时间:2024/06/05 21:14
转载自:http://www.cnblogs.com/lisperl/archive/2012/05/21/2511224.html
在写网络爬虫的时候,需要根据链接来获取文件类型,将内容正确存储。之前我都是根据链接的后缀来判断的,比如:
http://img12.360buyimg.com/da/20120330/88_31_ZySDre.jpg
这个链接指向的文件就是个jpg文件。但是后来发现有诸如
http://jprice.360buyimg.com/getSkuPriceImgService.action?skuId=1850001109&origin=1&webSite=1&type=1的链接,这招就不灵了。后来谷歌百度了一下也没发现解决办法。后来机缘巧合在Java Network Programming上找到了一个办法:
URLConnection class provides two static methods to help programs figure out the MIME type of some data; you can use these if the content type just isn't available or if you have reason to believe that the content type you're given isn't correct。
就是说URLConnection提供了两种方法可以猜测(根据实测结果,这个猜测是相当的准)数据的MIME类型。
第一个是:
public static String guessContentTypeFromName(String name)这个方法根据URL文件部分的后缀名来判断类型,跟之前我的方法一样。这个不能解决上面那个问题。第二个是:
public static String guessContentTypeFromStream(InputStream in)这个方法是根据流的前面几个字节来判断类型,这个就不需要文件后缀名了,完全可以解决上面那个问题。测试代码如下:
BufferedInputStream bis =
null
;
HttpURLConnection urlconnection =
null
;
URL url =
null
;
url =
new
URL(strUrl);
urlconnection = (HttpURLConnection) url.openConnection();
urlconnection.connect();
bis =
new
BufferedInputStream(urlconnection.getInputStream());
System.out.println(
"file type:"
+HttpURLConnection.guessContentTypeFromStream(bis));
- Java获取URL链接的文件类型
- Java获取URL链接的文件类型
- 获取URL对应的文件类型及后缀名
- JAVA获取真实的文件类型
- 使用Java获取文件类型
- Javascript 获取链接(url)参数的方法
- Javascript 获取链接(url)参数的方法
- Javascript 获取链接(url)参数的方法
- Javascript 获取链接(url)参数的方法
- Javascript 获取链接(url)参数的方法
- Javascript 获取链接(url)参数的方法
- Javascript 获取链接(url)参数的方法
- jQuery获取url链接
- java获取一段文字的url地址并以链接的形式显示在网页上
- Java程序使用httpClient发送Url链接,并获取返回的数据信息
- Java获取文件类型Mime Type的各种方法
- Java GUI中根据文件类型获取文件的图标
- Java获取文件类型Mime Type的各种方法
- 在看jQuery源码,jQuery.each()写的非常精粹
- 我的vc学习路
- 关于unity3的中的碰撞检测
- zoj1051--------A New Growth Industry 细菌~
- 抽象工厂+反射 实例讲解
- Java获取URL链接的文件类型
- Determining If a Filename Path Is a File or a Directory
- 不完全恢复之--基于时间恢复
- android 获得手机MAC 和 IP
- Selenium
- 可重入与不可重入函数
- android自定义对话框去除黑底
- php 合并两个有序数组
- 在Eclipse中使用sequoyah插件配置Android NDK环境