我希望使用序列化从文件中获取多个Employee类的功能。在这里我只得到一个对象任何解决方案??
package com.jbt;
import java.io.Serializable;
public class Employee implements Serializable
{
public String firstName;
public String lastName;
private static final long serialVersionUID = 5462223600l;
}
package com.jbt;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class SerializaitonClass {
public static void main(String[] args) {
Employee emp = new Employee();
emp.firstName = "Vivekanand";
emp.lastName = "Gautam";
try {
FileOutputStream fileOut = new FileOutputStream("./employee.txt");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(emp);
out.close();
fileOut.close();
System.out.printf("Serialized data is saved in ./employee.txt file");
} catch (IOException i) {
i.printStackTrace();
}
}
}
package com.jbt;
import java.io.*;
public class DeserializationClass {
public static void main(String[] args) {
Employee emp = null;
try {
FileInputStream fileIn = new FileInputStream("./employee.txt");
ObjectInputStream in = new ObjectInputStream(fileIn);
emp = (Employee) in.readObject();
in.close();
fileIn.close();
} catch (IOException i) {
i.printStackTrace();
return;
} catch (ClassNotFoundException c) {
System.out.println("Employee class not found");
c.printStackTrace();
return;
}
System.out.println("Deserializing Employee...");
System.out.println("First Name of Employee: " + emp.firstName);
System.out.println("Last Name of Employee: " + emp.lastName);
}
}
这里的Deserialization类如何在List中获取多个对象? 在此先感谢.. !!
答案 0 :(得分:1)
List<Employee> employeeList = new ArrayList<Employee>();
FileInputStream fis = null;
ObjectInputStream in = null;
try {
fis =new FileInputStream("./employee.txt");
in = = new ObjectInputStream(fis);
while (true) {
employeeList.add((Employee) in.readObject());
}
} catch (EOFException eof) {
// Ignore. means you reached EOF
} finally {
if (fis != null)
fis.close(); // close the stream
if(in != null)
in.close();
}
注意:您还可以序列化List
并将其存储在文件中,然后对其进行反序列化。 (添加列表是可序列化的列表)
答案 1 :(得分:1)
您可以按如下方式序列化和反序列化对象数组:
ItemsSource="{Binding}"