在孤獨中享受寂寞 在寂寞中廝殺黎明
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文件的示例程序
<
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人生
笛簫情緣
搜索
積分與排名
積分 - 31818
排名 - 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文件的實例(4868)
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 獨孤求敗
主站蜘蛛池模板:
免费看成人AA片无码视频羞羞网
|
极品色天使在线婷婷天堂亚洲
|
亚洲精品在线不卡
|
精品亚洲永久免费精品
|
亚洲精品中文字幕无码蜜桃
|
中出五十路免费视频
|
亚洲熟妇av一区二区三区漫画
|
国产高清视频免费在线观看
|
亚洲一级片免费看
|
好紧我太爽了视频免费国产
|
亚洲综合色一区二区三区小说
|
中国人xxxxx69免费视频
|
亚洲人成片在线观看
|
毛片免费vip会员在线看
|
亚洲精品伊人久久久久
|
欧美在线看片A免费观看
|
亚洲国产成人AV网站
|
亚洲精品无码日韩国产不卡?V
|
久久久久国色AV免费观看
|
亚洲VA成无码人在线观看天堂
|
足恋玩丝袜脚视频免费网站
|
国产成人亚洲合集青青草原精品
|
免费看无码自慰一区二区
|
黄色三级三级三级免费看
|
亚洲AV无码久久精品狠狠爱浪潮
|
蜜桃AV无码免费看永久
|
亚洲成AV人片在WWW
|
久久久久亚洲精品无码网址
|
亚洲国产精品无码久久久久久曰
|
国产精品高清免费网站
|
亚洲短视频男人的影院
|
性做久久久久久免费观看
|
国产偷国产偷亚洲高清在线
|
亚洲狠狠婷婷综合久久久久
|
亚洲第一网站免费视频
|
国产精品亚洲а∨天堂2021
|
亚洲成AV人片在线观看
|
女人张开腿给人桶免费视频
|
全黄大全大色全免费大片
|
亚洲中文字幕无码av在线
|
久久青青草原亚洲av无码
|