即使文件扩展名已更改,如何识别文件类型?

Max*_*min 2 java filesystems file-extension magic-numbers

文件按文件扩展名分类.所以我的问题是,即使文件扩展名已被更改,如何识别文件类型.

例如,我有一个名称的视频文件myVideo.mp4,我已将其更改为myVideo.txt.因此,如果我双击它,首选文本编辑器将打开该文件,并不会打开确切的内容.但是,如果我myVideo.txt在视频播放器中播放,视频将播放没有任何问题.

我只是想开发一个应用程序来确定文件类型而不检查文件扩展名并建议打开文件的软件.我想用Java开发应用程序.

Adi*_*Adi 5

Apache Tika是最好的图书馆之一.它不仅可以读取文件的标题,还可以执行内容分析来检测文件类型.使用Tika非常简单,这是检测文件类型的示例:

import java.net.URL;
import org.apache.tika.Tika; //Including Tika

public class TestTika {

    public static void main(String[] args) {
        Tika tika = new Tika();
        String fileType = tika.detect(new URL("http://example.com/someFile.jpg"));
        System.out.println(fileType);
    }

}
Run Code Online (Sandbox Code Playgroud)