在孤獨中享受寂寞 在寂寞中廝殺黎明
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
獨孤求敗
閱讀(4575)
評論(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文件的示例程序
<
2008年2月
>
日
一
二
三
四
五
六
27
28
29
30
31
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
1
2
3
4
5
6
7
8
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(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人生
笛簫情緣
搜索
積分與排名
積分 - 31819
排名 - 1332
最新隨筆
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文件格式解析(11145)
2.?一個解析Java Class文件的實例(4869)
3.?一個讀取Class文件的示例程序(4575)
4.?Java程序動態分析工具有哪些?(2399)
5.?Java標準類庫提供的容器總結(2341)
評論排行榜
1.?一個解析Java Class文件的實例(33)
2.?Java程序動態分析工具有哪些?(7)
3.?Java中類型與類的區別(5)
4.?Class文件格式解析(5)
5.?一個讀取Class文件的示例程序(5)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 獨孤求敗
主站蜘蛛池模板:
亚洲春色在线视频
|
国产免费av片在线播放
|
免费看片免费播放
|
亚洲中文字幕无码av在线
|
99re在线这里只有精品免费
|
亚洲成AV人片在线观看ww
|
永久在线观看免费视频
|
亚洲国产女人aaa毛片在线
|
99热在线免费观看
|
亚洲午夜在线一区
|
女人与禽交视频免费看
|
亚洲精品美女久久7777777
|
精品免费久久久久久成人影院
|
亚洲Aⅴ在线无码播放毛片一线天 亚洲avav天堂av在线网毛片
|
亚洲免费精彩视频在线观看
|
99久久免费看国产精品
|
亚洲成年人免费网站
|
在线免费观看视频你懂的
|
色欲aⅴ亚洲情无码AV
|
国外亚洲成AV人片在线观看
|
久久大香香蕉国产免费网站
|
亚洲欧洲国产成人精品
|
免费无码又爽又刺激高潮
|
亚洲av午夜成人片精品网站
|
男女男精品网站免费观看
|
亚洲精品国产品国语在线
|
999任你躁在线精品免费不卡
|
亚洲国产精品美女
|
午夜老司机免费视频
|
九九久久国产精品免费热6
|
日本免费在线观看
|
亚洲www77777
|
国产亚洲色视频在线
|
国产免费女女脚奴视频网
|
国产成人精品日本亚洲语音
|
亚洲av片不卡无码久久
|
国产又黄又爽又猛的免费视频播放
|
www在线观看播放免费视频日本
|
亚洲尹人九九大色香蕉网站
|
四虎在线视频免费观看
|
AAA日本高清在线播放免费观看
|