在孤獨中享受寂寞 在寂寞中廝殺黎明
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
* 將字節(jié)數組的指定長度部分編碼成16進制數字字符串
16
*
@param
buffer 待編碼的字節(jié)數組
17
*
@param
length 指定的長度
18
*
@return
編碼后連接而成的字符串
19
*/
20
public
static
String encode(
byte
[] buffer,
int
length)
21
{
22
StringBuilder sbr
=
new
StringBuilder();
23
//
將字節(jié)數組中每個字節(jié)拆解成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文件,將其所有字節(jié)轉換為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文件要用字節(jié)輸入流
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
獨孤求敗
閱讀(4574)
評論(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
好!
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網站導航:
博客園
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人生
笛簫情緣
搜索
積分與排名
積分 - 31796
排名 - 1333
最新隨筆
1.?Java標準類庫提供的容器總結
2.?Java中類型與類的區(qū)別
3.?發(fā)現一個很好的專題:實時 Java 系列
4.?Java程序動態(tài)分析工具有哪些?
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中類型與類的區(qū)別
嗯,及時糾錯,改正過來了:)
@lvq810
--獨孤求敗
9.?re: Java中類型與類的區(qū)別
評論內容較長,點擊標題查看
--獨孤求敗
10.?re: Java中類型與類的區(qū)別
char是無符號的
--lvq810
閱讀排行榜
1.?Class文件格式解析(11144)
2.?一個解析Java Class文件的實例(4864)
3.?一個讀取Class文件的示例程序(4574)
4.?Java程序動態(tài)分析工具有哪些?(2397)
5.?Java標準類庫提供的容器總結(2340)
評論排行榜
1.?一個解析Java Class文件的實例(33)
2.?Java程序動態(tài)分析工具有哪些?(7)
3.?Java中類型與類的區(qū)別(5)
4.?Class文件格式解析(5)
5.?一個讀取Class文件的示例程序(5)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 獨孤求敗
主站蜘蛛池模板:
二个人看的www免费视频
|
特a级免费高清黄色片
|
亚洲国产成人精品无码区二本
|
久久久高清日本道免费观看
|
久草免费手机视频
|
99视频全部免费精品全部四虎
|
在线视频免费观看www动漫
|
无码欧精品亚洲日韩一区夜夜嗨
|
亚洲香蕉久久一区二区
|
国产精品亚洲专区无码牛牛
|
污网站在线观看免费
|
久久免费视频观看
|
免费看韩国黄a片在线观看
|
www亚洲精品少妇裸乳一区二区
|
国产亚洲成av人片在线观看
|
亚洲乱码日产精品BD在线观看
|
激情婷婷成人亚洲综合
|
花蝴蝶免费视频在线观看高清版
|
黄页网站免费观看
|
亚洲色一色噜一噜噜噜
|
亚洲精品永久www忘忧草
|
国产成人精品亚洲一区
|
午夜网站在线观看免费完整高清观看
|
大地资源免费更新在线播放
|
亚洲综合另类小说色区色噜噜
|
亚洲欧洲日产国产最新
|
免费人成动漫在线播放r18
|
99精品视频免费在线观看
|
日韩免费无码一区二区视频
|
亚洲动漫精品无码av天堂
|
亚洲色丰满少妇高潮18p
|
成全动漫视频在线观看免费高清版下载
|
国产免费AV片在线观看播放
|
国产成人精品免费视频大
|
免费人成无码大片在线观看
|
久久久久亚洲精品无码蜜桃
|
免费看又黄又爽又猛的视频软件
|
free哆啪啪免费永久
|
相泽亚洲一区中文字幕
|
亚洲一区精品视频在线
|
中文字幕在线免费播放
|