当前位置: 首页 > 面试题库 >

使用XStream将Java对象序列化为XML

荀裕
2023-03-14
问题内容

问题在于,每次执行main方法时,a.xml的旧内容都会丢失,并被新的内容替代。如何在不丢失先前信息的情况下将内容附加到a.xml文件?

import java.io.FileNotFoundException;
import java.io.PrintWriter;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;


public class Test {
    public static void main(String[] args) throws FileNotFoundException {
        XStream xs = new XStream(new DomDriver());
        Foo f = new Foo(1, "booo", new Bar(42));
        PrintWriter pw = new PrintWriter("a.xml");
        xs.toXML(f,pw);
    }
}


public class Bar {
    public int id;

    public Bar(int id) {
        this.id = id;
    }

}


public class Foo {
    public int a;
    public String b;
    public Bar boo;
    public Foo(int a, String b, Bar c) {
        this.a = a;
        this.b = b;
        this.boo = c;
    }
}

问题答案:

样例代码

public static void main(String a[]){
  //Other code omitted
  FileOutputStream fos = new FileOutputStream("c:\\yourfile",true); //true specifies append
  Foo f = new Foo(1, "booo", new Bar(42));
  xs.toXML(f,fos);
}


 类似资料:
  • 我在尝试“反序列化”对象时遇到以下错误: 我需要能够使用这个XStream库序列化/反序列化对象,甚至是那些没有参数构造函数的对象。

  • 我正在使用xstream并尝试将列表序列化为XML。我需要一个输出结构 序列化的对象类似于 我的问题与作为对象集合的XStream-Root类似,但我希望在不使用包装对象的情况下这样做。

  • 首先,我想展示反序列化xml字符串的核心代码 T是从超级基类扩展的a类。就像 我希望你能理解我的想法,我真的对这些genericType和xstream转换感到困惑。谢谢。

  • 问题内容: 如何在JavaScript中将对象序列化为JSON? 问题答案: 您正在寻找。

  • 问题内容: 我的JSON有点弱,所以我需要一些帮助。 我正在尝试反序列化用户的JSON: 放入我用属性装饰的对象中: 我得到以下异常: Newtonsoft.Json.JsonSerializationException:在JSON中找不到必需的属性’user_id’。 这是因为JSON对象是一个数组吗?如果是这样,如何将其反序列化为一个User对象? 提前致谢! 问题答案: 正如Alexandr

  • 问题内容: 有没有一种方法可以通过杰克逊将xml(例如int)序列化为xml属性?我找不到任何特别的杰克逊或json批注(@XmlAttribute @ javax.xml.bind.annotation.XmlAttribute)来实现此目的。 例如 我想要的是: 但是我得到的是: 有没有一种方法来获取属性而不是元素?感谢帮助! 问题答案: 好吧,我找到了解决方案。 如果您使用jackson-d