【发布时间】:2022-01-01 01:31:11
【问题描述】:
首先要非常清楚:我不关心文件扩展名是什么,只关心实际内容。**我实际上是在尝试找到 file 命令的 Java 实现。
我目前正在编写一个图像分类器,将我的所有照片转换为 PNG 格式。为此,我必须转换我的文件,如果它们是 JPG 或 Web/P 或其他任何文件。我绕过 Stack Overflow,所有回复都在查看文件扩展名,这不是我感兴趣的。我正在尝试使用 Files.probeContentType(),但(据我所知)只查看文件扩展名:
public class Type {
public static void main(String[] args) throws IOException {
System.out.println(Files.probeContentType(new File(args[0]).toPath()));
}
}
bleh@bleh:/tmp$ file png
png: PNG image data, 600 x 600, 8-bit/color RGB, non-interlaced
bleh@bleh:/tmp$ java Type png
null
如上所述,我不在乎文件扩展名是什么。我只是想在 Java 中近似 file 命令。
我也愿意接受完全不同的编程语言的建议(尽管不是 bash)。
【问题讨论】:
-
你的代码需要根据文件内容进行猜测。这就是 Linux 中的“文件”命令的作用。以“幻数”开头的特定文件类型可能会使其变得容易,但这仍然是一个猜测。我会看一下 file 命令的代码。
标签: java image-processing