2012-05-09 3 views
0

XStream serializer를 사용하여 비 직렬화와 함께 원시적이고 직면 한 문제를 직렬화합니다. 여기에 문제의 설명입니다xstream primitive deserialization이 작동하지 않습니까?

말, 내가 가진 :

<int>80</int> 

그러나 때

int i = 80; 

나는 다음과 같은 직렬화 :

serializer.toXML(i, new FileOutputStream("me.xml")); 

을하고이 XML을 얻을 내가 deserealize하려고합니다 :

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1 
    at com.thoughtworks.xstream.core.util.FastStack.pop(FastStack.java:42) 
    at com.thoughtworks.xstream.io.xml.AbstractPullReader.move(AbstractPullReader.java:125) 
    at com.thoughtworks.xstream.io.xml.AbstractPullReader.moveDown(AbstractPullReader.java:103) 
    at com.thoughtworks.xstream.io.xml.XppReader.<init>(XppReader.java:63) 
    at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:54) 
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:912) 
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:903) 
    at Utilities.Parser.serializeTimeIntervalDuration(Parser.java:371) 
    at Utilities.Parser.parseData(Parser.java:152) 
    at CoreLayer.Main.Main.main(Main.java:52) 

사람이 나를 나의 실수에 지점 수 :

i = (int) serializer.fromXML("me.xml"); 
는이 같은 예외를 얻을?

미리 감사드립니다.

답변

3

fromXML()은 파일 이름이 아닌 XML을 필요로하기 때문입니다. 파싱하기 전에 파일에서 XML을 읽어야합니다. 당신은 XStream을 문자열 "me.xml"의 의미를하려고하는 순간 등

문자열, URL을 독자들에게 제공 할 수 있도록 XStream는, fromXML()의 여러 구현을 가지고

참고.

+0

브라이언, 대단히 감사합니다. 내 시간이 많이 절약되었습니다. 정말 감사! –