站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题大家有办法 把一个类加载之后 再输出成一个文件保存在硬盘里吗?

大家有办法 把一个类加载之后 再输出成一个文件保存在硬盘里吗?

摘要: 大家有办法 把一个类加载之后 再输出成一个文件保存在硬盘里吗?


大家有办法 把一个类加载之后 再输出成一个文件保存在硬盘里吗?
比如说.有
a.class
b.class
main() 在a.class 里.
在里面new 一个b b b1 = new b();

需要把用b1这个Class,把它输出成一个文件 保存在硬盘上..




package temp;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class A {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
B b=new B(10);
try{
ObjectOutputStream d=new ObjectOutputStream(new FileOutputStream("file1"));
d.writeObject(b);
d.flush();
d.close();
}catch(Exception e){
e.printStackTrace();
}
}

}

class B implements Serializable {
private int i=100;
private List list=new ArrayList();
B(int j){
list.add(j);
}
}


大哥.你很帅哈..不过我试过程序 生成出来的文件 与file1与 B.class 文件 不一样哈.(用UE对比过)..是不是要改一下下...


你要B.class啊。。。编译完硬盘上不就有了么


//javassit
import java.io.*;
import javassist.*;
public class SaveClass
{
public static void main(String[] args)
{
if(args.length<1) System.exit(0);
try
{
ClassPool cp=ClassPool.getDefault(null);
CtClass cc=cp.get(args[0]);
byte[] bytes=cc.toBytecode();
File f=new File(args[0]+".class");
DataOutputStream dos=new DataOutputStream(new FileOutputStream(f));
dos.write(bytes);
dos.close();
f.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}


谢了哈 ..成功 了



↑返回目录
前一篇: 聊天程序,如何打中文字体?
后一篇: 求一个成员方法重载的例子