複雑なクラスのインスタンスのリストがあります。多くの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 形式で保存する必要があるため、シリアル化が必要かどうかはまだわかりません。