在孤獨中享受寂寞 在寂寞中廝殺黎明
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 獨孤求敗
主站蜘蛛池模板:
99re6在线精品免费观看
|
美女露100%胸无遮挡免费观看
|
中文在线观看永久免费
|
国产成人精品亚洲精品
|
精品一区二区三区免费视频
|
亚洲国产精品免费在线观看
|
亚洲国产精品无码专区在线观看
|
免费无码又爽又刺激网站
|
久久久久亚洲av无码尤物
|
99久久精品免费视频
|
亚洲天堂一区二区三区
|
无码日韩精品一区二区免费
|
中文字幕亚洲精品无码
|
日韩视频免费在线
|
国产国产人免费人成成免视频
|
9420免费高清在线视频
|
亚洲国产成+人+综合
|
嫩草视频在线免费观看
|
五级黄18以上免费看
|
亚洲AV无码成人网站久久精品大
|
好男人视频在线观看免费看片
|
久久人午夜亚洲精品无码区
|
亚洲国产精品嫩草影院在线观看
|
免费h视频在线观看
|
亚洲av无码一区二区三区天堂古代
|
毛片a级毛片免费观看免下载
|
亚洲AV无码精品国产成人
|
区三区激情福利综合中文字幕在线一区亚洲视频1
|
国产免费av片在线看
|
精品视频免费在线
|
亚洲av永久无码精品表情包
|
美女裸身网站免费看免费网站
|
三年片在线观看免费观看大全中国
|
日韩亚洲人成在线综合日本
|
我们的2018在线观看免费高清
|
国产精品亚洲色图
|
久久精品国产亚洲AV无码娇色
|
国产成人免费a在线视频色戒
|
免费无码又爽又刺激网站
|
久久亚洲精品专区蓝色区
|
亚洲美日韩Av中文字幕无码久久久妻妇
|