getResourceAsStream()查找资源,但它会写一个空文件

时间:2015-08-07 14:28:44

标签: java resources inputstream

我的资源文件夹中有一个.properties文件。我想加载该文件,但是当我使用IOUtils来读取我的文件内容时,它只会创建一个新的空文件并赢得'复制我的test.properties的内容。

    try (InputStream demoTemplate = 
          MyClass.class
         .getClassLoader()
         .getResourceAsStream("/config/test.properties")
    {
        IOUtils.copy(demoTemplate, new FileWriter(destinationFile));
        LOGGER.debug(" demo file content: " + OUtils.toString(demoTemplate));
    }

我的日志输出为空,将创建文件,但它没有内容。

当我更改test.properties文件的路径时,它将导致FileNotFound异常,因此我确定ClassLoader可以加载respurce。 test.properties文件包含数据。

1 个答案:

答案 0 :(得分:2)

您的日志记录输出为空,因为您已将InputStream耗尽到目标文件中。

您的输出可能为空,因为FileWriter从未被正确刷新或关闭。

也许你可以读取目标文件并记录它,再次打开原始源,保留输入流内容的副本,或者在传输数据时记录,但这不需要使用简单的IOUtils帮手。