Из того, что я понимаю из http://x -stream.github.io / tutorial.html (я никогда раньше не работал с XStream), вам нужно сначала определить типы. Приведение к String определенно неверно, вам, вероятно, нужен настраиваемый тип (в зависимости от того, что находится внутри вашего случайного XML), а затем вам нужно сопоставить теги XML своим членам:
например.
xstream.alias("person", Person.class);
xstream.alias("phonenumber", PhoneNumber.class);
означает, что он отображает тег "person" внутри вашего XML в ваш класс Person.
Для десериализации вы можете сделать:
RandomTree myRandomTree = (RandomTree)xstream.fromXML( xml );
Кроме того, вы дважды закрываете свой поток и, вероятно, хотите сделать это в блоке finally:)
edit: Прочитав ваш комментарий выше ...
Ваша задача состоит из двух шагов:
- десериализация
- Сериализация
Чтобы сериализовать ваш объект, вы должны сначала десериализовать его из входного файла.
Чтобы вывести ваш объект в виде строки, просто сделайте
String xml = xstream.toXML( myRandomTree );