码迷,mamicode.com
首页 > 其他好文 > 详细

关于判断一个文件是否是class文件

时间:2019-05-12 15:43:10      阅读:435      评论:0      收藏:0      [点我收藏+]

标签:inpu   字节   开头   csdn   val   com   plain   png   line   

最近看到一篇文章,其中有一行代码是判断class文件类型的,代码片段:

InputStream is = new InputStream("Test.Class");
DataInputStream dis;
        if (is instanceof DataInputStream)
            dis = (DataInputStream) is;
        else
            dis = new DataInputStream(is);
        if (dis.readInt() != 0xcafebabe)
            throw new IOException("not a .class file");
由于对IO操作不是很精通,对这行代码产生的疑问if (dis.readInt() != 0xcafebabe),查阅相关资料,readInt()方法是读取输入流的四个字节,而class文件都是以CA FE BA BE 开头的,上图
技术图片
这么做的原因就是为了快速判断一个文件是不是有可能为class文件,以及这个class文件有没有受损,即使文件的后缀名被修改也能判断出来。
参考:https://blog.csdn.net/ustcyy91/article/details/78462378
 

关于判断一个文件是否是class文件

标签:inpu   字节   开头   csdn   val   com   plain   png   line   

原文地址:https://www.cnblogs.com/chengu/p/10852325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!