代码之家  ›  专栏  ›  技术社区  ›  Student

在没有使用文件扩展名的情况下,有没有用Java来识别音频或图像文件的方法?

  •  1
  • Student  · 技术社区  · 16 年前

    假设将创建新的音频和图像类型,我希望我的过滤器将图像和音频文件分开。那么有没有办法识别呢?

    3 回复  |  直到 16 年前
        1
  •  2
  •   johnny g    16 年前

    简而言之…不。

    很长一段时间,假设我们 不 了解媒体文件和类型[即不了解文件扩展名、数据格式等],识别一种文件的唯一方法是探测其数据并识别它-这需要对媒体格式有深入的了解,而这是我们所不具备的。

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

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

        2
  •  2
  •   deamon    16 年前

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

        3
  •  1
  •   Roman    16 年前

    我建议您只使用基于异常的解决方案,即尝试使用imageio读取每个文件,如果抛出异常,则它不是图像文件。但这不是个好办法。

    你最好找个机会用其他更合乎逻辑的方式来区分它们。