如何将list集合写入文件进行序列化和反序列化,详细代码java
时间: 2023-07-18 13:34:48 浏览: 45
序列化和反序列化list集合可以使用Java提供的ObjectOutputStream和ObjectInputStream类,下面是详细代码:
1. 序列化list集合写入文件:
```java
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class SerializeList {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.add("JavaScript");
try {
FileOutputStream fos = new FileOutputStream("list.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(list);
oos.close();
fos.close();
System.out.println("List serialized successfully");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
2. 反序列化文件中的list集合:
```java
import java.io.*;
import java.util.List;
public class DeserializeList {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("list.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
List<String> list = (List<String>) ois.readObject();
ois.close();
fis.close();
System.out.println("List deserialized successfully");
System.out.println("Elements in the list:");
for (String element : list) {
System.out.println(element);
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
注意:被序列化的list集合中的元素必须是可序列化的,否则会抛出NotSerializableException异常。