java对象转换为字节数组

来源:互联网 发布:国外数据采集 的方法 编辑:程序博客网 时间:2024/05/18 01:58

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就没那么好使了,这个办法就可以重新打散类,然后在拼出用!以前在网上也找过,但都为找到适合自己的方法,现在解决了,帖上!

0 0