-1

シリアル化したい配列リストがあります。その方法を教えてください。

 ArrayList list=new ArrayList();
      list.add("Ram");
      list.add("Sachin");
      list.add("Dinesh");
      list.add(1,"Ravi");
      list.add("Dinesh");
      list.add("Anupam");
      System.out.println("There are "+list.size()+" elements in the list.");
      System.out.println("Content of list are : ");
      Iterator itr=list.iterator();
      while(itr.hasNext())
      System.out.println(itr.next());
     }

}

シリアル化メカニズムを使用して、ファイルに保存できるようにしたい

4

2 に答える 2

1

とてもシンプルです。ArrayListString(リストに格納する) の両方Serializableがインターフェイスを実装しているため、シリアル化に標準の Java メカニズムを使用できます。

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("myfile"));
oos.writeObject(list);
............
oos.fluch();
oos.close();

この例では、FileOutputStream を ObjectOutputStream でラップしましたが、他のペイロード ストリームを使用できることは明らかです。

于 2012-05-10T17:12:20.187 に答える
0

オブジェクトをシリアライズおよびデシリアライズするための独自のメソッドを作成する必要があります。以下は、まさにそれを行うための便利な方法です。

public static Object deserializeBytes(byte[] bytes) throws IOException, ClassNotFoundException
{
    ByteArrayInputStream bytesIn = new ByteArrayInputStream(bytes);
    ObjectInputStream ois = new ObjectInputStream(bytesIn);
    Object obj = ois.readObject();
    ois.close();
    return obj;
}


public static byte[] serializeObject(Object obj) throws IOException
{
    ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(bytesOut);
    oos.writeObject(obj);
    oos.flush();
    byte[] bytes = bytesOut.toByteArray();
    bytesOut.close();
    oos.close();
    return bytes;
}
于 2012-05-10T17:18:52.773 に答える