java - 如何在 Java 中识别文件类型?
问题描述
自从之前提出这个问题和以前的答案以来已经有几年了,例如,
显示一些旧库,其中大部分似乎不再维护。所以我认为这个问题值得再问一次。
我需要的是一种基于内容识别文件类型的好方法。类似于file
Linux 中的命令。特别是我对加密文件的类型检测很感兴趣。
我的文件可能称为 client.crt,但实际内容使用 PEM 格式,因此文件扩展名在这里并不真正可用。此外,对于 Linux,文件扩展名是可选的。
Apache TIKA 似乎还在开发中,但它的大小约为 75MB。此外,它似乎对加密文件的支持有限。
我知道这是一件复杂的事情,并且该file
命令是一个非常先进的工具。有谁知道如何以一种好的方式处理这个问题?
BR帕特里克
编辑
看起来这个问题已经得到了密切的投票。我并不是真的在寻找可以做到这一点的图书馆。使用 Java 标准库的代码示例已经足够好,但是从头开始做起来太乏味了(因此没有代码示例)。一个好的代码示例会很棒,这使得它非常适合堆栈溢出。
解决方案
推荐阅读
- java - 如何在一个活动中添加多个 onActivityResult() 而不去其他活动?
- jquery - 当我单击它重定向到同一页面的 url 时,我希望它重定向到链接
- python - 在python中导入一个excel csv文件
- regex - Google Data Studio Regexp 替换公式 - 删除之后的所有字符?和 #
- python - Dask 以编程方式启动远程工作人员
- emacs - Emacs 26.3:生涩的滚动
- arduino - 如何让 Arduino 与 Processing 通信
- html - Dash plotly 图像不在浏览器中呈现,但在 jupyter 笔记本 python 中显示
- spring - 无法实例化 bean 类注解sessionfactorybean
- ruby-on-rails - Docker rails mongodb (Mongo::Error::NoServerAvailable (没有可用的服务器匹配首选项:#
我正在开发一个需要对 Rails 应用程序进行 dockerizing 的项目,该应用程序正在使用 mongodb(mongoid gem)和 sidekiq 和 redis。
我们的目标是创建3个容器,一个用于redis,一个用于sidekiq,第三个