在孤獨(dú)中享受寂寞 在寂寞中廝殺黎明
One java world , One java fan !
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆-8 評(píng)論-67 文章-0 trackbacks-0
一個(gè)讀取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進(jìn)制數(shù)字字符集
12
private
static
String hexString
=
"
0123456789ABCDEF
"
;
13
14
/** */
/**
15
* 將字節(jié)數(shù)組的指定長(zhǎng)度部分編碼成16進(jìn)制數(shù)字字符串
16
*
@param
buffer 待編碼的字節(jié)數(shù)組
17
*
@param
length 指定的長(zhǎng)度
18
*
@return
編碼后連接而成的字符串
19
*/
20
public
static
String encode(
byte
[] buffer,
int
length)
21
{
22
StringBuilder sbr
=
new
StringBuilder();
23
//
將字節(jié)數(shù)組中每個(gè)字節(jié)拆解成2位16進(jìn)制整數(shù)
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
* 讀取一個(gè)Class文件,將其所有字節(jié)轉(zhuǎn)換為16進(jìn)制整數(shù),并以字符形式輸出
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
//
輸出轉(zhuǎn)換后的文件要用字符輸出流
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
獨(dú)孤求敗
閱讀(4576)
評(píng)論(5)
編輯
收藏
所屬分類:
Java ByteCode
評(píng)論:
#
re: 一個(gè)讀取Class文件的示例程序 2008-02-01 09:16 |
astamei
這個(gè)就是一個(gè)讀二進(jìn)制文件吧?
回復(fù)
更多評(píng)論
#
re: 一個(gè)讀取Class文件的示例程序 2008-02-01 12:27 |
獨(dú)孤求敗
@astamei
是啊,實(shí)際上就是將一個(gè)二進(jìn)制文件轉(zhuǎn)換為十六進(jìn)制文件
回復(fù)
更多評(píng)論
#
re: 一個(gè)讀取Class文件的示例程序 2008-02-17 12:46 |
93ttu
好東西呀
回復(fù)
更多評(píng)論
#
re: 一個(gè)讀取Class文件的示例程序 2008-03-25 16:53 |
王躍峰
不知道博主還在寫嗎?我研究了下,寫了程序要獲取到class中的method的參數(shù)名稱,目前只能得到方法描述.
一般是這樣的
create(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
我現(xiàn)在想知道參數(shù)的名字啊,常量池中有這個(gè)名字的
怎樣通過method_info聯(lián)系到哪個(gè)參數(shù)名稱?
求老大賜教.mail:wang.yue.feng@163.com
回復(fù)
更多評(píng)論
#
re: 一個(gè)讀取Class文件的示例程序
2010-02-16 06:04 |
doon
好!
回復(fù)
更多評(píng)論
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
一個(gè)解析Java Class文件的實(shí)例
Class文件格式解析
一個(gè)讀取Class文件的示例程序
<
2010年2月
>
日
一
二
三
四
五
六
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
1
2
3
4
5
6
7
8
9
10
11
12
13
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(7)
給我留言
查看公開留言
查看私人留言
隨筆分類
(5)
Apache Ant 使用例程
Design Pattern
Inside JVM學(xué)習(xí)筆記
Java ByteCode(3)
Java JDK 學(xué)習(xí)筆記(2)
Java 技術(shù)
ObjectWeb ASM 操縱例程
隨筆檔案
(8)
2008年7月 (2)
2008年6月 (3)
2008年2月 (3)
文章分類
Java人生
笛簫情緣
搜索
積分與排名
積分 - 31822
排名 - 1332
最新隨筆
1.?Java標(biāo)準(zhǔn)類庫(kù)提供的容器總結(jié)
2.?Java中類型與類的區(qū)別
3.?發(fā)現(xiàn)一個(gè)很好的專題:實(shí)時(shí) Java 系列
4.?Java程序動(dòng)態(tài)分析工具有哪些?
5.?編程該學(xué)些啥?
6.?一個(gè)解析Java Class文件的實(shí)例
7.?Class文件格式解析
8.?一個(gè)讀取Class文件的示例程序
最新評(píng)論
1.?re: 一個(gè)解析Java Class文件的實(shí)例
好強(qiáng)大啊
--dereky
2.?re: 一個(gè)解析Java Class文件的實(shí)例[未登錄]
寫的真好
--wei
3.?re: 一個(gè)解析Java Class文件的實(shí)例[未登錄]
寫得太好了!高手。有機(jī)會(huì)的話希望能請(qǐng)教你些問題。
--lynn
4.?re: 一個(gè)讀取Class文件的示例程序
好!
--doon
5.?re: 一個(gè)解析Java Class文件的實(shí)例[未登錄]
太厲害了!
--阿飛
6.?re: Class文件格式解析[未登錄]
寫的不錯(cuò),謝謝
--fay
7.?re: Java標(biāo)準(zhǔn)類庫(kù)提供的容器總結(jié)
寫的不錯(cuò)
--代理163
8.?re: Java中類型與類的區(qū)別
嗯,及時(shí)糾錯(cuò),改正過來了:)
@lvq810
--獨(dú)孤求敗
9.?re: Java中類型與類的區(qū)別
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--獨(dú)孤求敗
10.?re: Java中類型與類的區(qū)別
char是無符號(hào)的
--lvq810
閱讀排行榜
1.?Class文件格式解析(11146)
2.?一個(gè)解析Java Class文件的實(shí)例(4869)
3.?一個(gè)讀取Class文件的示例程序(4576)
4.?Java程序動(dòng)態(tài)分析工具有哪些?(2399)
5.?Java標(biāo)準(zhǔn)類庫(kù)提供的容器總結(jié)(2341)
評(píng)論排行榜
1.?一個(gè)解析Java Class文件的實(shí)例(33)
2.?Java程序動(dòng)態(tài)分析工具有哪些?(7)
3.?Java中類型與類的區(qū)別(5)
4.?Class文件格式解析(5)
5.?一個(gè)讀取Class文件的示例程序(5)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 獨(dú)孤求敗
主站蜘蛛池模板:
色婷婷六月亚洲综合香蕉
|
成人免费在线看片
|
亚洲第一综合天堂另类专
|
亚洲AV日韩AV永久无码免下载
|
全部免费a级毛片
|
最新中文字幕电影免费观看
|
日韩精品无码免费一区二区三区
|
人妻18毛片a级毛片免费看
|
亚洲熟妇无码AV不卡在线播放
|
亚洲中文字幕一区精品自拍
|
亚洲尹人九九大色香蕉网站
|
亚洲午夜久久久影院伊人
|
成人亚洲综合天堂
|
精品国产免费观看一区
|
久久国内免费视频
|
91网站免费观看
|
99热在线免费播放
|
免费的全黄一级录像带
|
久久久久久噜噜精品免费直播
|
黄色a级片免费看
|
国产精品亚洲小说专区
|
亚洲国产精华液2020
|
国产精品亚洲午夜一区二区三区
|
亚洲精品第一国产综合精品
|
久久久久亚洲精品影视
|
亚洲国产精品VA在线看黑人
|
亚洲中文字幕无码久久综合网
|
久久久无码精品亚洲日韩软件
|
亚洲七七久久精品中文国产
|
又粗又硬免费毛片
|
国产啪亚洲国产精品无码
|
亚洲美女高清一区二区三区
|
igao激情在线视频免费
|
理论片在线观看免费
|
美女羞羞免费视频网站
|
看一级毛片免费观看视频
|
色屁屁在线观看视频免费
|
日日躁狠狠躁狠狠爱免费视频
|
丰满妇女做a级毛片免费观看
|
一本大道一卡二大卡三卡免费
|
波霸在线精品视频免费观看
|