当我从json文件读取时,我想用gson做到这一点:

JsonReader reader = new JsonReader(new InputStreamReader(
                new FileInputStream(filename)));
JsonParser jsonParser = new JsonParser();
return jsonParser.parse(reader).getAsJsonObject();


我将在其他地方使用返回的JsonObject做更多的事情。

我的问题是,因为我从不关闭读者,这是否还可以。

从JsonReader的gson API中,它表明JsonReader实现了AutoClosable。这是否意味着JsonReader将自动关闭?如果是这样,什么时候关闭?如何关闭?

谢谢。

最佳答案

是的,您必须关闭阅读器。
正如shmuel指出的那样,AutoCloseable可以用于Java 7中引入的try-with-resource语句。
这是调整代码的方法:

try(JsonReader reader = new JsonReader(new InputStreamReader(
    new FileInputStream(filename))))
{
  JsonParser jsonParser = new JsonParser();
  return jsonParser.parse(reader).getAsJsonObject();
}

关于java - 是否需要显式关闭gson中的JsonReader,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46534915/

10-10 08:17