package welcome;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.ByteArrayInputStream;
import java.io.*;
import java.util.ArrayList;
/**
* 目的是把一个类文件写入到字节数组里面
*/
public class Test {
public static final String WRITEOBJ = "写的就是我";
public static final ArrayList list = new ArrayList();
public static void main(String[] args) {
try {
list.add("1");
list.add("2");
ByteArrayOutputStream baos = new ByteArrayOutputStream(); //构造一个字节输出流
ObjectOutputStream oos = new ObjectOutputStream(baos); //构造一个类输出流
//oos.writeObject(list); //写这个对象
oos.writeObject(WRITEOBJ); //写这个对象
byte[] buf = baos.toByteArray(); //从这个地层字节流中把传输的数组给一个新的数组
oos.flush();
System.out.println(baos.toString());
System.out.println(buf.length);
//构建一个类输入流,地层用字节输入流实现
ByteArrayInputStream bais = new ByteArrayInputStream(buf);
ObjectInputStream ois = new ObjectInputStream(bais);
String str = (String) ois.readObject();
//ArrayList str = (ArrayList) ois.readObject(); //读取类
System.out.println(str);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
只要是可以序列化的对象都可以直接转换成字节数组,现在存放到数据库都成了。嘿嘿!因为用socket通讯比较方便,直接可以构造类流,但是用上DatagramSocket就没那么好使了,这个办法就可以重新打散类,然后在拼出用!以前在网上也找过,但都为找到适合自己的方法,现在解决了,帖上!