使用FileInputStream(用于Java)读取XML文件?

这是交易.

对于我的项目,我必须使用Java和XStream对随机树进行序列化和反序列化.我的老师制作了Tree / RandomTree算法,所以我不必担心.我不知道该怎么做是这样的:我使用FileInputStream来读/写我序列化和反序列化的xml文件,但是当我反序列化时,我不知道用于读取文件的方法.在我读完文件之后,我应该能够从XML转换它,然后将其作为字符串打印出来.这是我到目前为止所拥有的. (我正确导入了所有内容,只是没有将其添加到我的代码段).

FileInputStream fin;        

try
{
    // Open an input stream
    fin = new FileInputStream ("/Users/Pat/programs/randomtree.xml");

    //I don't know what to put below this, to read FileInpuStream object fin

    String dexml = (String)xstream.fromXML(fin);

    System.out.println(dexml);

    // Close our input stream
    fin.close();    


    System.out.println(dexml);

    // Close our input stream
    fin.close();        
}
// Catches any error conditions
catch (IOException e)
{
    System.err.println ("Unable to read from file");
    System.exit(-1);
}

编辑:嘿伙计们,感谢您的帮助,我想出来了;我不认为我必须将其打印为字符串,我只需要制作一个基准测试框架来计时等等,但再次感谢!

最佳答案 xstream.fromXML()方法将为您输入输入流.我认为问题是你将xstream.fromXML(fin)的返回值转换为String,因为它应该转换为你最初序列化的对象类型(我假设为RandomTree).所以代码看起来像这样:

RandomTree tree = (RandomTree)xstream.fromXML(fin);

编辑:在评论中澄清后,作者的目标是首先读入一个字符串,以便在反序列化之前打印XML内容.考虑到这一目标,我建议您查看this thread中提到的IOUtils库

点赞