首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Java中获取文件的Mime类型

在Java中,可以通过检查文件扩展名来获取文件的MIME类型。以下是一个简单的示例,展示了如何根据文件扩展名获取MIME类型:

代码语言:java
复制
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;

public class MimeTypeDetector {

    private static final Map<String, String> MIME_TYPES = new HashMap<>();

    static {
        MIME_TYPES.put("txt", "text/plain");
        MIME_TYPES.put("html", "text/html");
        MIME_TYPES.put("css", "text/css");
        MIME_TYPES.put("js", "application/javascript");
        MIME_TYPES.put("json", "application/json");
        MIME_TYPES.put("png", "image/png");
        MIME_TYPES.put("jpg", "image/jpeg");
        MIME_TYPES.put("jpeg", "image/jpeg");
        MIME_TYPES.put("gif", "image/gif");
        MIME_TYPES.put("bmp", "image/bmp");
        MIME_TYPES.put("pdf", "application/pdf");
        MIME_TYPES.put("doc", "application/msword");
        MIME_TYPES.put("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
        MIME_TYPES.put("xls", "application/vnd.ms-excel");
        MIME_TYPES.put("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        MIME_TYPES.put("ppt", "application/vnd.ms-powerpoint");
        MIME_TYPES.put("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
        MIME_TYPES.put("mp3", "audio/mpeg");
        MIME_TYPES.put("mp4", "video/mp4");
        MIME_TYPES.put("avi", "video/x-msvideo");
        MIME_TYPES.put("flv", "video/x-flv");
        MIME_TYPES.put("3gp", "video/3gpp");
        MIME_TYPES.put("mkv", "video/x-matroska");
        MIME_TYPES.put("wmv", "video/x-ms-wmv");
    }

    public static void main(String[] args) throws IOException {
        String filePath = "path/to/your/file";
        String mimeType = getMimeType(filePath);
        System.out.println("MIME type of the file: " + mimeType);
    }

    public static String getMimeType(String filePath) throws IOException {
        Path path = Paths.get(filePath);
        String extension = Files.probeContentType(path);
        if (extension == null) {
            extension = filePath.substring(filePath.lastIndexOf(".") + 1);
        }
        return MIME_TYPES.getOrDefault(extension.toLowerCase(), "application/octet-stream");
    }
}

这个示例中,我们使用了一个静态的HashMap来存储文件扩展名和MIME类型之间的映射。在getMimeType方法中,我们首先尝试使用Java的Files.probeContentType方法来获取文件的MIME类型。如果这个方法返回null,我们将使用文件扩展名作为键来查找MIME类型。如果找不到对应的MIME类型,我们将返回"application/octet-stream"作为默认类型。

请注意,这个示例仅支持一些常见的MIME类型。如果您需要支持更多的MIME类型,请扩展MIME_TYPES映射。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

6分22秒

17-在idea中能够创建mybatis核心配置文件和映射文件的模板

34分48秒

104-MySQL目录结构与表在文件系统中的表示

3分41秒

21_尚硅谷_MyBatis_在idea中设置映射文件的模板

13分7秒

20_尚硅谷_MyBatis_在idea中设置核心配置文件的模板

33分30秒

Java零基础-299-多态在开发中的作用

9分4秒

Java零基础-300-总结多态在开发中的作用

18分15秒

Java零基础-341-获取类路径下文件的绝对路径

4分54秒

day20_常用类/23-尚硅谷-Java语言高级-System类中获取时间戳的方法

4分54秒

day20_常用类/23-尚硅谷-Java语言高级-System类中获取时间戳的方法

4分54秒

day20_常用类/23-尚硅谷-Java语言高级-System类中获取时间戳的方法

23分5秒

day24_集合/11-尚硅谷-Java语言高级-HashMap在JDK7中的源码分析

23分40秒

day24_集合/12-尚硅谷-Java语言高级-HashMap在JDK8中的源码分析

领券