【问题标题】:Java - XStream closing connection to FileJava - XStream 关​​闭与文件的连接
【发布时间】:2011-12-31 16:02:20
【问题描述】:

我像这样加载我的 XML:

File f = new File("Results\\" + filename);
xstream.fromXML(f);
Boolean delete = f.delete();

成功使用 XStream 后,我想删除我的文件。我无法这样做,因为 XStream 仍处于打开状态,因此无法删除我的文件。如何关闭我的连接并删除我的文件?

【问题讨论】:

  • 我猜你已经添加了更多细节。您提供的快照无助于确定问题所在。 fromXml 执行后,文件流被关闭。您使用的是什么操作系统?
  • 您为 XStream 配置了哪个 StreamReader?
  • 我在这里找到了答案:stackoverflow.com/questions/991489/i-cant-delete-a-file-in-javaSystem.gc();成功了,在此之后我做的事情并不多。我在 dev 上运行 XP,在 live 上运行 Ubuntu 服务器
  • 那么解决了吗?但这与 GC 有什么关系?
  • 它已解决,但不是很好。我相信 fromXML(File f) 不能很好地关闭连接。

标签: java xml file io xstream


【解决方案1】:
File file = new File(...);
try (InputStream inputStream = new FileInputStream(file)) {
    ...
    xstream.fromXML(file);
    ...
} catch (Exception e) {
    log.debug(e);
} finally {
    inputStream.close();
}

如果抛出异常,则 inpuStream 将正确关闭。如果一切正常 - InputStream 将在 finally 块内正确关闭。

【讨论】:

    猜你喜欢
    • 2016-12-31
    • 1970-01-01
    • 2012-05-27
    • 2017-09-13
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多