将 ArrayList 保存到 Java 文件
Java 提供了一种机制,其中对象可以表示为包含该对象的数据和以下信息的位序列:其类型和保存在对象中的数据类型。序列化对象成功保存到文件后,可以毫无问题地从文件中读取它,然后对其进行反序列化。表示对象及其数据的位可用于在内存中重新创建对象。
ObjectInputStream 和 ObjectOutputStream 类是两个高级数据流,其中包含用于从 .
ArrayList 是可序列化的。这意味着您不需要实现 Serializable interface 即可序列化 ArrayList.
将 ArrayList 保存到
此类将创建一个测试文件,该文件将具有 ArrayList 对象作为位流。测试文件用于保存和重新创建比特流中的对象。请注意,在此示例中,我们没有实现 Serializable 接口,因为默认情况下 ArrayList 已序列化。import java.io.FileNotFoundException;运行时:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class SerializeArrayList {
public static void main(String[] args) {
ArrayListal=new ArrayList ();
al.add(你好世界”);
al.add (你好世界”);
try {
FileOutputStream fileOut = new FileOutputStream(test”);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(al);
out.close();
fileOut.close();
System.out.println(\n序列化已成功完成...\n”);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
序列化成功完成...打开后创建的二进制文件的内容如下所示:
从
在这个类中,我们从使用上述类存储的测试文件中以位的形式检索数据流。我们将返回的对象转换为带有强制转换的 ArrayList,并显示 ArrayList 的元素。查看输出,我们得到的项与序列化之前添加到列表中的项目相同.import java.io.FileInputStream;Runtime:
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
public class SerializeArrayList {
public static void main(String[] args) {
//read
ArrayList<字符串>arraylist= new ArrayList<字符串>();
try {
FileInputStream fileIn = new FileInputStream(test”);
ObjectInputStream ois = new ObjectInputStream(fileIn);
arraylist = (ArrayList) ois.readObject();
ois.close();
fileIn.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO 自动生成的 catch block
e.printStackTrace();
}
System.out.println(读取数据: \n”);
for(String o:arraylist)
System.out.println(o);
}
}
读取数据:就是这样!不要犹豫,提出您的问题;
hello world
hello world