import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
/**
* @2017年9月1日@上午10:07:48
* @Endless
* @ArraySerialize.java
* @version集合序列化和反序列化
*/
public class ArraySerialize {
private static ArrayList<Object>
DeSerialize()
throws IOException, ClassNotFoundException {
ArrayList<Object> arr =
new ArrayList<Object>();
ObjectInputStream oo =
new ObjectInputStream(
new FileInputStream(
"D:/1.txt"));
for (
int i =
0; i <
20; i++) {
tv x1 = (tv) oo.readObject();
arr.add(x1);
}
oo.close();
return arr;
}
public static void main(String[] args)
throws IOException, ClassNotFoundException {
ArrayList<Object> arr =
new ArrayList<Object>();
for (
int i =
0; i <
20; i++) {
arr.add(
new tv(i));
}
Serialize(arr);
ArrayList<Object> arrs = DeSerialize();
arrs.forEach(x -> ((tv) x).show());
for (
int i =
0; i <
20; i++) {
arrs.get(
5);
}
}
@SuppressWarnings(
"rawtypes")
private static void Serialize(ArrayList x)
throws IOException {
ObjectOutputStream oo =
new ObjectOutputStream(
new FileOutputStream(
"D:/1.txt"));
for (
int i =
0; i < x.size(); i++) {
oo.writeObject(x.get(i));
}
oo.close();
}
}
class tv implements Serializable {
private static final long serialVersionUID =
1L;
int x;
tv(
int x) {
System.out.println(x +
"序列化此对象");
this.x = x;
}
public void show() {
System.out.println(x +
"序列化及反成功!");
}
}