如何检查File是否是Java类

问题描述 投票:0回答:1

我有一个

java.io.File
类,其中包含资源链接。我想检查这个文件是否是一个Java类。 可以检查文件扩展名...但是这种方法不适合我,因为任何人都可以创建具有 .class 扩展名的文件,但逻辑上该文件本身不会是 Java 类。

java io
1个回答
0
投票

所有 Java 文件都以神奇数字 0xCAFEBABE 开头,所以这应该可以解决问题

        InputStream is = new FileInputStream(outFile);
        byte[] magicNumber = new byte[4];
        is.read(magicNumber);
        is.close();

        Arrays.equals(new byte[]{(byte) 0xca, (byte) 0xfe, (byte) 0xba, (byte) 0xbe}, magicNumber);
© www.soinside.com 2019 - 2024. All rights reserved.