Java获取文件Content-Type(Mime-Type)

刚好工作中要用到,所以总结一下。推荐使用第一种和第三种,实在不行,也可以去把http://tool.oschina.net/commons上面特定类型对应的mime-type复制下来,放入map什么的去对比。

1、使用JDK1.7自带方法

  1. import java.io.IOException;
  2. import java.nio.file.Files;
  3. import java.nio.file.Path;
  4. import java.nio.file.Paths;
  5. public class Test{
  6. public static void main(String[] args){
  7. Path path = Paths.get("E:\\static\\count.mp3");
  8. String contentType = null;
  9. try {
  10. contentType = Files.probeContentType(path);
  11. } catch (IOException e) {
  12. e.printStackTrace();
  13. }
  14. System.out.println("File content type is : " + contentType);
  15. }
  16. }

2、javax.activation.MimetypesFileTypeMap

  1. import java.io.File;
  2. import javax.activation.MimetypesFileTypeMap;
  3. public class Test{
  4. public static void main(String[] args){
  5. String contentType = new MimetypesFileTypeMap().getContentType(new File("E:\\static\\count.mp3"));
  6. System.out.println(contentType);
  7. }
  8. }

3、JMimeMagic

  1. Magic parser = new Magic() ;
  2. MagicMatch match = parser.getMagicMatch(new File("E:\\static\\count.mp3"));
  3. System.out.println(match.getMimeType()) ;

4、java.net.*

Tips:貌似mp3音频文件获取为null,这种暂时不推荐

  1. import java.net.FileNameMap;
  2. import java.net.URLConnection;
  3. public class Test {
  4. public static void main(String args[]) throws Exception {
  5. FileNameMap fileNameMap = URLConnection.getFileNameMap();
  6. String contentType = fileNameMap.getContentTypeFor("E:\\static\\bg.jpg");
  7. System.out.println(contentType);
  8. // output : image/jpeg
  9. }
  10. }
  1. 原文链接:http://blog.csdn.net/saytime/article/details/51497529

Java获取文件Content-Type(Mime-Type)的更多相关文章

  1. C#获取文件的Content-Type(MIME Type)的方法

    使用静态类MimeMapping(需要.NET Framework 4.5及以后的支持) string fileName = "D:\myfile.txt"; var conten ...

  2. java获取文件的路径问题

    java获取文件的路径问题 在java中读取读取文件,经常因为路径的问题找不到,此文用于记录如何定位文件的简单方法. 本基于springboot做的测试,主要是构建工程方便,所用的方法都是JDK中的方 ...

  3. java 获取文件后缀名(文件类型)

      java 获取文件后缀名(文件类型) CreateTime--2018年5月23日09:16:31 Author:Marydon // 获取文件名的后缀名(文件类型) String oldFile ...

  4. Java获取文件Content-Type的四种方法

    HTTP Content-Type在线工具 有时候我们需要获取本地文件的Content-Type,已知 Jdk 自带了三种方式来获取文件类型. 另外还有第三方包 Magic 也提供了API.Magic ...

  5. JAVA获取文件夹下所有的文件

    package com.test; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; im ...

  6. java获取文件流

      CreateTime--2017年9月1日14:49:21 Author:Marydon servlet获取文件流的两种方式 方式一:使用绝对路径(推荐使用) import java.io.Inp ...

  7. java 获取文件列表,并按照文件名称排序

    需求:获取全部的日志文件,并按照文件名称倒序排列,把最新的文件放在最前1.获取全部的日志文件:(方法:public List<String> ergodic(File file,List& ...

  8. JAVA 获取文件的MD5值大小以及常见的工具类

    /** * 获取文件的MD5值大小 * * @param file * 文件对象 * @return */ public static String getMD5(File file) { FileI ...

  9. Java获取文件的后缀名。

    /** * 详细步骤 */ private static void test1() { //获取文件的原始名称 String originalFilename = "tim.g (1).jp ...

随机推荐

  1. 在VMware软件下创建CentOs虚拟机

    1.创建新的虚拟机. 打开VMware软件,点击主页内创建新的虚拟机 2.进入新建虚拟机向导 点击典型,点击下一步 3.在下一步中单击稍后安装操作系统 点击下一步 4.选择操作系统类型 因为CentO ...

  2. js导出复杂表头(多级表头)的excel

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. layui中下拉框问题

    <div class="layui-form-item"> <label class="layui-form-label">上级栏目:& ...

  4. VMware1设备与主机共享网络的问题

    问题的提出: 最近需要用到VMware1设备来配置网络,顺便将VMware1设备与主机进行共享网络,这样master就能直接访问网络了,但是原本以为直接在wlan设备上选择网络共享就行了,但是却没法收 ...

  5. singleton 类模板限制类只能定义一个对象

    singleton 类模板限制类只能定义一个对象 singleton 类模板限制类只能定义一个对象 singleton 类模板限制类只能定义一个对象 ???

  6. 使用自己的Python函数处理Protobuf中的字符串编码

    我目前所在的项目是一个老项目,里面的字符串编码有点乱,数据库中有些是GB2312,有些是UTF8:代码中有些是GBK,有些是UTF8,代码中转来转去,经常是不太清楚当前这个字符串是什么编码,由于是老项 ...

  7. 安装 Confluence6.7.1 笔记

    安装 Confluence6.7.1 我是使用命令行进入mysql的mysql -uroot -p123456 创建数据库 CREATE DATABASE confluence DEFAULT CHA ...

  8. 通过js渲染高层级DOM实现网页加水印

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. UML关系类图

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  10. LeakCanary 与 鹅场Matrix ResourceCanary对比分析

    推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) LeakCanary是Square公司基于MAT开源的一个内存泄 ...