java工具包识别文件类型

本文介绍了如何在Java项目中通过pom.xml引入k-file-detector库,展示了如何使用FileDetector类来检测文件类型,包括读取文件内容并获取可能的文件类型信息。
摘要由CSDN通过智能技术生成
pom.xml引入
<dependency>
    <groupId>io.github.kylin-hunter</groupId>
    <artifactId>k-file-detector</artifactId>
    <version>1.0.11</version>
</dependency>
实现代码
static  void sss() throws IOException {
        byte[] content = FileUtils.readFileToByteArray(new File(".mp4"));
        // if  know the file name, you can invoke:  FileDetector.detect(content,"xxx.xxx)
        DetectResult detectResult = FileDetector.detect(content);
        List<FileType> possibleFileTypes = detectResult.getPossibleFileTypes();
        for (FileType fileType : possibleFileTypes) {
            System.out.println("id=" + fileType.getId()); // file type id
            System.out.println("extensions=" + fileType.getExtensions()); // the extensions, may be empty
            System.out.println("desc=" + fileType.getDesc()); // the description
        }
    }
    static void  kkk(){
        DetectResult detectResult = FileDetector.detect(new File(".mp4"));  //by file
        List<FileType> possibleFileTypes = detectResult.getPossibleFileTypes();
        for (FileType fileType : possibleFileTypes) {
            System.out.println("id=" + fileType.getId()); // file type id
            System.out.println("extensions=" + fileType.getExtensions()); // the extensions, may be empty
            System.out.println("desc=" + fileType.getDesc()); // the description
        }
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中可以使用 `java.nio.file.Files.probeContentType(Path path)` 方法来获取文件的 MIME 类型。该方法会根据文件的扩展名和内容来尝试确定文件的 MIME 类型。但是该方法不是完全可靠的,因为它依赖于操作系统和 Java 运行时环境的设置。 如果需要更可靠的方式来判断文件类型,可以使用开源库 Apache Tika。Apache Tika 是一个用于检测和提取元数据的工具包,可以识别超过 1500 种不同的文件格式。以下是使用 Apache Tika 判断文件类型的示例代码: ```java import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.tika.detect.Detector; import org.apache.tika.detect.MagicDetector; import org.apache.tika.metadata.Metadata; import org.apache.tika.mime.MediaType; import org.apache.tika.parser.AutoDetectParser; import org.apache.tika.parser.Parser; import org.apache.tika.sax.BodyContentHandler; public class FileTypeDetector { public static void main(String[] args) throws IOException { File file = new File("/path/to/file"); FileInputStream stream = new FileInputStream(file); // 使用 MagicDetector 判断文件类型 Detector detector = new MagicDetector(); MediaType mediaType = detector.detect(stream, new Metadata()); System.out.println("MIME 类型:" + mediaType.toString()); // 使用 AutoDetectParser 获取文件内容 Parser parser = new AutoDetectParser(); BodyContentHandler handler = new BodyContentHandler(); Metadata metadata = new Metadata(); parser.parse(stream, handler, metadata); System.out.println("文件内容:" + handler.toString()); } } ``` 在上面的示例中,我们先使用 MagicDetector 判断文件类型,然后使用 AutoDetectParser 获取文件内容。如果需要更详细的元数据信息,可以在 Metadata 对象中获取。需要注意的是,使用 Apache Tika 需要添加对应的依赖包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值