我正在使用这个 XML 转换器,但我没有得到对象头来包装每个对象的属性......我也找不到编码器类中的方法来执行此操作。
代码遍历我的数组并列出所有不为空的对象。
FileOutputStream os = new FileOutputStream("C:\\Users\\David Laptop\\Documents\\Doc1.xml");
XMLEncoder encoder = new XMLEncoder(os);
for( int x = 0; x < people.length;x++)
if (people[x] != null)
{
//header here?
encoder.writeObject(people[x].getName());
encoder.writeObject(people[x].getTelephoneNumber());
encoder.writeObject(people[x].getEmailAddress());
}
}
encoder.close();
我得到这个结果:
<?xml version="1.0" encoding="UTF-8" ?>
<java version="1.7.0_40" class="java.beans.XMLDecoder">
string
dad</string string 35235 /string
string email /string
</java>
如果我做更多的对象条目,那么它最终会成为一个大列表,这无济于事,因为我想要实现的另一个功能是从 XML 文件读取到数组中......任何帮助也将是有用的!
编辑:基于给出的答案的新信息:
那么没有无参数构造函数就没有办法实现这一点吗?我已经在两个类中实现了 Serializable 以实现良好的衡量...我正在使用这一行来添加新对象:
mybook1.addRecord(new newPerson(Name,telephoneNumber,emailAddress));
它使用这个:
public void addRecord(newPerson c)
{
people[numOfRecords] = c;
numOfRecords++;
}
下面是对象本身:
public class newPerson implements java.io.Serializable
{
private String Name;
private String telephoneNumber;
private String emailAddress;
public newPerson(String n, String t, String e)
{ //local variables n,t,e only used in this method
Name = n;
telephoneNumber = t;
emailAddress = e;
}
有什么建议么?