【发布时间】:2013-07-10 07:23:32
【问题描述】:
我有一个复杂类的实例列表:它有很多 val,包括嵌套类,也有很多 val。我想以json 或xml 格式写入文件。
我找到了一个简单的例子,它似乎可以做我想做的事(虽然在 Java 中,但这并不重要):
#Main.java
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class Main {
public static void main(String args[]) {
try {
Employee employee = new Employee("0001", "Robert", "Newyork City", "IT");
FileOutputStream fos = new FileOutputStream("my-data.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(employee);
oos.flush();
oos.close();
System.out.println("Employee Object written to file employee.dat");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
#Employee.java
import java.io.Serializable;
public class Employee implements Serializable {
private String empId;
private String Name;
private String Address;
private String Dept;
public Employee(String empId, String name, String address, String dept) {
this.empId = empId;
this.Name = name;
this.Address = address;
this.Dept = dept;
}
public String toString() {
return "[Employee: " + empId + ", " + ", " + Name + ", " + Address + ", " + Dept + "]";
}
}
我的输出是一个写入文件的二进制数据。而且toString()方法手动枚举所有字段,这对于我的真实课堂来说是无法接受的。
那我该怎么做呢?如果你给出一个小例子,我会非常感激,而不是说“有一个名为 X 的库,使用它”。在我之前关于序列化的问题中,我已经使用所有这些库失败了。我还不确定我需要的是序列化,因为我需要它不是以二进制形式存储,而是以 xml 或 json 格式存储。
【问题讨论】:
-
添加一个示例,说明结果文本文件的外观
-
@om-nom-nom 据我了解,他不想序列化它,而是以人类可读的格式写入文件,而不是二进制
-
@AlexIv xml 和 json 相对人类可读,我上面链接的问题不是关于 binary 序列化,而是关于序列化为 json/xml