java的class文件的前4个字节叫做magic number,

用来识别是否为java的class文件.

package pkg;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

/**

* @author qefee.com

*

*/

public class MagicNumber {

public static void main(String[] args) {

String pathname = "./bin/pkg/MagicNumber.class";

File file = new File(pathname);

FileInputStream fis = null;

try {

fis = new FileInputStream(file);

int magicNumber = 0;

magicNumber = fis.read();

magicNumber = (magicNumber << 8) ^ fis.read();

magicNumber = (magicNumber << 8) ^ fis.read();

magicNumber = (magicNumber << 8) ^ fis.read();

String magicNumberString = Integer.toHexString(magicNumber);

System.out.println(magicNumber);

System.out.println(magicNumberString);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (fis != null) {

try {

fis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

或者

package pkg;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

/**

* @author qefee.com

*

*/

public class MagicNumber {

public static void main(String[] args) {

String pathname = "./bin/pkg/MagicNumber.class";

File file = new File(pathname);

FileInputStream fis = null;

try {

fis = new FileInputStream(file);

System.out.print(Integer.toHexString(fis.read()));

System.out.print(Integer.toHexString(fis.read()));

System.out.print(Integer.toHexString(fis.read()));

System.out.print(Integer.toHexString(fis.read()));

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

if (fis != null) {

try {

fis.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

输出

cafebabe

java magic number_java的class文件的magic number, cafebabe相关推荐

  1. java 解析修改dex_Android dex文件解析

    1. 关于Android dex文件 dex文件作为Android APK的组成部分,其主要是Android的Java代码经过编译生成class文件,再经过dx命令生成的.这里面包括了APK的源码,反 ...

  2. Java反编译字节码文件

    如何查看 Java 的字节码文件? 在 Java 中,字节码文件.class实际上是二进制文件,并不能直接查看.要想查看,我们只能通过反编译对其进行解析,然后查看解析后的源码. 如何反编译字节码文件 ...

  3. java并发读取相同的文件_高效读取大文件,再也不用担心 OOM 了!

    最近阿粉接到一个需求,需要从文件读取数据,然后经过业务处理之后存储到数据库中.这个需求,说实话不是很难,阿粉很快完成了第一个版本. 内存读取 第一个版本,阿粉采用内存读取的方式,所有的数据首先读读取到 ...

  4. 保存Java程序状态及设置Properties文件

    保存Java程序状态及设置Properties文件 作者: 刻录机, 出处:中国IT实验室, 责任编辑: 包春林, 2008-04-11 00:00 使用Properties文件来保存.Propert ...

  5. Java 中几种获取文件路径的方式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 Java 开 ...

  6. Java项目中读取properties文件,以及六种获取路径的方法

    下面1-4的内容是网上收集的相关知识,总结来说,就是如下几个知识点: 最常用读取properties文件的方法 InputStream in = getClass().getResourceAsStr ...

  7. java实现把一个大文件切割成N个固定大小的文件

    这个好像是我一年前去面试时的一道面试题,分享一下!考 java I/O 的! //java实现把一个大文件切割成N个固定大小的文件 package com.johnny.test; import ja ...

  8. 把Java程序打包成jar文件包并执行

    把Java程序打包成jar文件包并执行 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: ...

  9. Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略

    Python:pmml格式文件的简介.安装.使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略 目录 pmml格式文件的简介 1.PMML结构 pmml安装 pmm ...

最新文章

  1. 平时用电脑的一些技巧
  2. 如何分割字符串以便可以访问项目x?
  3. Java常见面试题及答案汇总
  4. 使用spyder编译器单步调试python
  5. 换ip_换IP对云手机来说是好事吗?
  6. SecureCRT 基本设置
  7. disp语句怎么格式 matlab_matlab输出语句print
  8. 周遭心理学的应用-什么是心理学?
  9. 《东周列国志》第七十回 杀三兄楚平王即位 劫齐鲁晋昭公寻盟
  10. 视频号怎么赚钱?视频号有什么功能?
  11. 汽车覆盖件冲压模具铸造工艺研究
  12. shell脚本(linux)
  13. 理光M340W激光打印机加粉清零
  14. git 提交代码某个文件夹一直提交不上去
  15. 2022-2023年度必备宇宙最全Windows系统软件清单
  16. 基于时延法的麦克风阵列声源定位分析
  17. python类不支持多继承_关于Python类的多继承中的MOR继承顺序问题
  18. RJ-45双绞线的制作和测试-网络实验1
  19. 线上展厅vr展厅虚拟解说 广州商迪
  20. 使用路缘石成型机一次施工作业成型

热门文章

  1. 学计算机swot分析怎么写,计算机专业学生个人SWOT分析示例
  2. 如何预编译ASP.Net程序
  3. 骁龙相机 android8,谷歌相机移植成功,支持骁龙845,小米8小米MIX2S亲测可用
  4. ios 密码大小写数字 符号_iOS 用户密码 数字字母特殊符号设置 判断
  5. 来把狠的——传一个肖邦的《Black Key Exercise(黑键练习曲)》
  6. 除了百度、搜狗搜索你还知道哪些好用的搜索引擎吗?
  7. Visualbox下安装增加功能报错的处理方法
  8. 【总结】云集各大高校 — 数学建模经验分享(万字总结)
  9. C++实现字符串的反转
  10. JavaScript基础(四)字符串操作