将序列化的对象(多个对象,一个一个的保存,不是放到数组中一次性保存)保存到xml文件中,读取时
XMLDecoder decoder = new XMLDecoder(fis);
Object use= null;
try {
while((use=decoder.readObject())!=null){
System.out.println(((User)decoder.readObject()).getUsername());
//userList.add(use);
}
}
着色那一句](use=decoder.readObject())!=null会因为读取最后一个是空的而出现异常,该怎样解决
XMLDecoder decoder = new XMLDecoder(fis);
Object use= null;
try {
while((use=decoder.readObject())!=null){
System.out.println(((User)decoder.readObject()).getUsername());
//userList.add(use);
}
}
着色那一句](use=decoder.readObject())!=null会因为读取最后一个是空的而出现异常,该怎样解决
package com.tur.demo;import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class BeanToXml {
public static User createUser() {
User user = new User("Biao", "Passw0rd");
user.getValues().add("One");
user.getValues().add("Two");
user.getValues().add("Three"); user.getCodes()[0] = 0;
user.getCodes()[1] = 1;
user.getCodes()[2] = 2;
user.getCodes()[3] = 3; return user;
} public static void toXml() {
User user = createUser(); Message message = new Message();
message.setType("User");
message.setContent(user); XStream xstream = new XStream();
xstream.alias("Message", Message.class);
xstream.alias("User", User.class); // 别名,输出的时候是User,而不是com.tur.demo.User System.out.println(xstream.toXML(message));
} public static void fromXml() {
XStream xstream = new XStream();
xstream.alias("User", User.class);
xstream.alias("Message", Message.class); Message message = (Message) xstream.fromXML(ClassLoader.getSystemResource("data.txt"));
User user = (User) message.getContent();
System.out.println(user);
} public static void toJson() {
User user = createUser();
XStream xstream = new XStream(new JettisonMappedXmlDriver());
xstream.setMode(XStream.NO_REFERENCES);
xstream.alias("User", User.class); System.out.println(xstream.toXML(user));
} public static void fromJson() { } public static void main(String[] args) {
toXml();
fromXml(); toJson();
}
}class Message {
private String type;
private Object content; String getType() {
return type;
} void setType(String type) {
this.type = type;
} Object getContent() {
return content;
} void setContent(Object content) {
this.content = content;
}
}class User {
private String username;
private String password;
private List<String> values;
private int[] codes; public User() {
this("", "");
} public User(String username, String password) {
this.username = username;
this.password = password;
this.values = new ArrayList<String>();
this.codes = new int[5];
} String getUsername() {
return username;
} void setUsername(String username) {
this.username = username;
} String getPassword() {
return password;
} void setPassword(String password) {
this.password = password;
} List<String> getValues() {
return values;
} void setValues(List<String> values) {
this.values = values;
} int[] getCodes() {
return codes;
} void setCodes(int[] codes) {
this.codes = codes;
} @Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", values=" + values +
", codes=" + Arrays.toString(codes) +
'}';
}
}