首页 > 解决方案 > 使用 Jackson 编写和读取资源文件

问题描述

我正在尝试HashMap使用 Jackson 将 a 保存为 JSON 文件。我希望所述文件位于我的资源文件夹中。

try {
        new ObjectMapper().writeValue(
                new File(MyClass.class.getResource("/path/file.json").toURI()), myHashMap);
    } catch (URISyntaxException | IOException e) {
        e.printStackTrace();
    }

我已经尝试过这种方法,它没有产生异常,但给我留下了一个空白的 JSON 文件。没有数据写入其中。这是一些权限问题吗?

我也想将此文件作为HashMap. 这是我目前的做法:

Map<Long, String> tmp;
    try {
        tmp = new ObjectMapper().readValue(
                MyClass.class.getResourceAsStream("/path/file.json"), Map.class);
    } catch (IOException e) {
        tmp = new HashMap<>();
    }
    myHashMap = tmp;

有没有更好的方法来做到这一点?据我了解,当找不到文件时通常会引发异常(将实际错误排除在等式之外)。没关系,那就用空的吧HashMap。由于它稍后会被填充并保存,所以这种情况只存在于第一次启动程序或文件被删除时。

现在我大多无法保存我的文件。

标签: javajsonjacksonresourcesjava-resources

解决方案


推荐阅读