是否有一种方法可以在java中识别音频或图像文件,而不使用文件扩展名?

是否有一种方法可以在java中识别音频或图像文件,而不使用文件扩展名?,java,file,Java,File,假设将创建新的音频和图像类型,我希望我的过滤器将图像和音频文件分开。有什么方法可以识别吗?我可以建议您只使用基于异常的解决方案,即尝试使用ImageIO读取每个文件,如果引发异常,则它不是图像文件。但这是一个糟糕的解决方案 您最好找到一个机会,以其他更符合逻辑的方式区分它们。我可以建议您仅使用基于异常的解决方案,即尝试使用ImageIO读取每个文件,如果引发异常,则它不是图像文件。但这是一个糟糕的解决方案 您最好找到一个机会,以其他更符合逻辑的方式来区分它们。您可以查看文件以检测实际的媒体类型。

假设将创建新的音频和图像类型,我希望我的过滤器将图像和音频文件分开。有什么方法可以识别吗?

我可以建议您只使用基于异常的解决方案,即尝试使用ImageIO读取每个文件,如果引发异常,则它不是图像文件。但这是一个糟糕的解决方案


您最好找到一个机会,以其他更符合逻辑的方式区分它们。

我可以建议您仅使用基于异常的解决方案,即尝试使用ImageIO读取每个文件,如果引发异常,则它不是图像文件。但这是一个糟糕的解决方案


您最好找到一个机会,以其他更符合逻辑的方式来区分它们。

您可以查看文件以检测实际的媒体类型。看看它类似于unix下的file命令。

您可以查看文件以检测实际的媒体类型。看看它类似于unix下的file命令。

简而言之。。。没有

长期而言,假设我们不了解媒体文件和类型[即不了解文件扩展名、数据格式等],识别一种文件的唯一方法是探测其数据并进行识别-这需要对媒体格式有深入的了解,而这是我们所没有的

但是,如果我们的操作系统包含这些媒体文件,那么系统中的某些人很可能知道如何打开或操作它们。因此,合理地假设此应用程序将向系统注册媒体类型[以及其他元数据,如文件扩展名、默认播放器等]

因此,如果您热衷于保持动态,您可能应该找到一种与底层系统进行媒体事件通信的方法[例如当遇到并注册新的媒体格式时]。

简而言之。。。没有

长期而言,假设我们不了解媒体文件和类型[即不了解文件扩展名、数据格式等],识别一种文件的唯一方法是探测其数据并进行识别-这需要对媒体格式有深入的了解,而这是我们所没有的

但是,如果我们的操作系统包含这些媒体文件,那么系统中的某些人很可能知道如何打开或操作它们。因此,合理地假设此应用程序将向系统注册媒体类型[以及其他元数据,如文件扩展名、默认播放器等]


因此,如果您热衷于保持动态,您可能应该找到一种与底层系统进行媒体事件通信的方法[例如遇到并注册新媒体格式时]。

+1我喜欢。如果出现新类型的图像,ImageIO将被更新,因此我的应用程序。我会等待更多的意见。但ImageIO即使现在也不能识别所有类型的图像。。。调用ImageIO.getReaderFormatNames/GetReaderMetypes查看支持哪些类型。你可以添加插件来支持新的图像类型,但是你必须事先知道格式。如果出现新类型的图像,ImageIO将被更新,因此我的应用程序。我会等待更多的意见。但ImageIO即使现在也不能识别所有类型的图像。。。调用ImageIO.getReaderFormatNames/GetReaderMetypes查看支持哪些类型。您可以添加插件以支持新的图像类型,但您必须事先知道格式。是否有一种通用方法来说明它是音频还是图像,而不依赖于扩展名?此库的目的是不依赖于文件扩展名。是否有一种通用方法来说明它是音频还是图像,独立于扩展名?此库的目的是不依赖于文件扩展名。