在孤獨中享受寂寞 在寂寞中廝殺黎明
One java world , One java fan !
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-8 評論-67 文章-0 trackbacks-0
一個讀取Class文件的示例程序
1
package
bytecodeResearch;
2
3
import
java.io.BufferedInputStream;
4
import
java.io.BufferedWriter;
5
import
java.io.FileInputStream;
6
import
java.io.FileWriter;
7
import
java.io.IOException;
8
9
public
class
ReadAndWriteClass
{
10
11
//
16進制數字字符集
12
private
static
String hexString
=
"
0123456789ABCDEF
"
;
13
14
/** */
/**
15
* 將字節數組的指定長度部分編碼成16進制數字字符串
16
*
@param
buffer 待編碼的字節數組
17
*
@param
length 指定的長度
18
*
@return
編碼后連接而成的字符串
19
*/
20
public
static
String encode(
byte
[] buffer,
int
length)
21
{
22
StringBuilder sbr
=
new
StringBuilder();
23
//
將字節數組中每個字節拆解成2位16進制整數
24
for
(
int
i
=
0
;i
<
length;i
++
)
25
{
26
sbr.append(hexString.charAt((buffer[i]
&
0xf0
)
>>
4
));
27
sbr.append(hexString.charAt(buffer[i]
&
0x0f
));
28
sbr.append(
"
"
);
29
}
30
return
sbr.toString();
31
}
32
33
/** */
/**
34
* 讀取一個Class文件,將其所有字節轉換為16進制整數,并以字符形式輸出
35
*
@param
inputPath 輸入文件的完整路徑
36
*
@param
outputPath 輸出文件的完整路徑
37
*
@throws
IOException 讀寫過程中可能拋出的異常
38
*/
39
public
static
void
rwclass(String inputPath, String outputPath)
throws
IOException
40
{
41
//
讀取Class文件要用字節輸入流
42
BufferedInputStream bis
=
new
BufferedInputStream(
43
new
FileInputStream(inputPath));
44
//
輸出轉換后的文件要用字符輸出流
45
BufferedWriter bw
=
new
BufferedWriter(
46
new
FileWriter(outputPath));
47
48
int
readSize
=
16
;
49
byte
[] buffer_read
=
new
byte
[readSize];
50
String line;
51
String lineNumber
=
"
0000000
"
;
52
String strReplace;
53
int
i
=
0
;
54
while
((readSize
=
bis.read(buffer_read,
0
,readSize))
!=
-
1
)
55
{
56
line
=
encode(buffer_read,readSize);
57
strReplace
=
Integer.toHexString(i);
58
lineNumber
=
lineNumber.substring(
0
,
7
-
strReplace.length());
59
lineNumber
=
lineNumber
+
strReplace;
60
line
=
lineNumber
+
"
0h:
"
+
line;
61
bw.write(line);
62
bw.newLine();
63
i
++
;
64
}
65
bis.close();
66
bw.close();
67
}
68
69
/** */
/**
70
* 程序的入口方法
71
*
@param
args
72
*
@throws
IOException
73
*/
74
public
static
void
main(String[] args)
75
{
76
//
指定輸入、輸出文件的完整路徑
77
String inputPath
=
"
L:/HelloWorld/HelloWorld.class
"
;
78
String outputPath
=
"
L:/HelloWorld/HelloWorld_ByteCode.txt
"
;
79
80
try
{
81
rwclass(inputPath, outputPath);
82
System.out.println(
"
Successfully !
"
);
83
}
catch
(IOException ioe)
{
84
System.err.println(
"
Something wrong with reading or writing
!
"
);
85
ioe.printStackTrace();
86
}
87
88
}
89
90
}
91
posted on 2008-02-01 04:11
獨孤求敗
閱讀(4573)
評論(5)
編輯
收藏
所屬分類:
Java ByteCode
評論:
#
re: 一個讀取Class文件的示例程序 2008-02-01 09:16 |
astamei
這個就是一個讀二進制文件吧?
回復
更多評論
#
re: 一個讀取Class文件的示例程序 2008-02-01 12:27 |
獨孤求敗
@astamei
是啊,實際上就是將一個二進制文件轉換為十六進制文件
回復
更多評論
#
re: 一個讀取Class文件的示例程序 2008-02-17 12:46 |
93ttu
好東西呀
回復
更多評論
#
re: 一個讀取Class文件的示例程序 2008-03-25 16:53 |
王躍峰
不知道博主還在寫嗎?我研究了下,寫了程序要獲取到class中的method的參數名稱,目前只能得到方法描述.
一般是這樣的
create(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
我現在想知道參數的名字啊,常量池中有這個名字的
怎樣通過method_info聯系到哪個參數名稱?
求老大賜教.mail:wang.yue.feng@163.com
回復
更多評論
#
re: 一個讀取Class文件的示例程序
2010-02-16 06:04 |
doon
好!
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
一個解析Java Class文件的實例
Class文件格式解析
一個讀取Class文件的示例程序
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(7)
給我留言
查看公開留言
查看私人留言
隨筆分類
(5)
Apache Ant 使用例程
Design Pattern
Inside JVM學習筆記
Java ByteCode(3)
Java JDK 學習筆記(2)
Java 技術
ObjectWeb ASM 操縱例程
隨筆檔案
(8)
2008年7月 (2)
2008年6月 (3)
2008年2月 (3)
文章分類
Java人生
笛簫情緣
搜索
積分與排名
積分 - 31787
排名 - 1333
最新隨筆
1.?Java標準類庫提供的容器總結
2.?Java中類型與類的區別
3.?發現一個很好的專題:實時 Java 系列
4.?Java程序動態分析工具有哪些?
5.?編程該學些啥?
6.?一個解析Java Class文件的實例
7.?Class文件格式解析
8.?一個讀取Class文件的示例程序
最新評論
1.?re: 一個解析Java Class文件的實例
好強大啊
--dereky
2.?re: 一個解析Java Class文件的實例[未登錄]
寫的真好
--wei
3.?re: 一個解析Java Class文件的實例[未登錄]
寫得太好了!高手。有機會的話希望能請教你些問題。
--lynn
4.?re: 一個讀取Class文件的示例程序
好!
--doon
5.?re: 一個解析Java Class文件的實例[未登錄]
太厲害了!
--阿飛
6.?re: Class文件格式解析[未登錄]
寫的不錯,謝謝
--fay
7.?re: Java標準類庫提供的容器總結
寫的不錯
--代理163
8.?re: Java中類型與類的區別
嗯,及時糾錯,改正過來了:)
@lvq810
--獨孤求敗
9.?re: Java中類型與類的區別
評論內容較長,點擊標題查看
--獨孤求敗
10.?re: Java中類型與類的區別
char是無符號的
--lvq810
閱讀排行榜
1.?Class文件格式解析(11144)
2.?一個解析Java Class文件的實例(4863)
3.?一個讀取Class文件的示例程序(4573)
4.?Java程序動態分析工具有哪些?(2396)
5.?Java標準類庫提供的容器總結(2339)
評論排行榜
1.?一個解析Java Class文件的實例(33)
2.?Java程序動態分析工具有哪些?(7)
3.?Java中類型與類的區別(5)
4.?Class文件格式解析(5)
5.?一個讀取Class文件的示例程序(5)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 獨孤求敗
主站蜘蛛池模板:
亚洲欧洲一区二区三区
|
亚洲激情电影在线
|
午夜爽爽爽男女免费观看影院
|
久久精品国产亚洲AV无码偷窥
|
美女裸身网站免费看免费网站
|
日韩欧美亚洲国产精品字幕久久久
|
亚洲午夜久久久影院伊人
|
91精品免费国产高清在线
|
成人福利在线观看免费视频
|
亚洲首页在线观看
|
免费一级毛片在线播放
|
四虎影视成人永久免费观看视频
|
亚洲国产成人AV在线播放
|
亚洲一区无码中文字幕
|
好吊妞788免费视频播放
|
青青操在线免费观看
|
亚洲GV天堂无码男同在线观看
|
久久精品国产亚洲av成人
|
午夜成人免费视频
|
久久国产乱子伦精品免费看
|
国产精品久久久久久亚洲影视
|
亚洲午夜久久久影院伊人
|
日本一区二区三区免费高清
|
曰批全过程免费视频在线观看无码
|
亚洲 欧洲 视频 伦小说
|
亚洲AV日韩AV天堂久久
|
久久亚洲国产成人影院网站
|
中文字幕在线免费观看视频
|
免费人成网站在线高清
|
亚洲一区二区三区免费观看
|
久久青草91免费观看
|
国产精品亚洲专区无码不卡
|
亚洲一区中文字幕在线观看
|
国产成人精品日本亚洲网站
|
亚洲自偷自偷图片
|
免费中文字幕不卡视频
|
久久久久国色AV免费观看性色
|
一级毛片免费不卡在线
|
a级毛片免费全部播放
|
一道本在线免费视频
|
亚洲精品色在线网站
|