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

getResourceAsStream() finds resource, but it will write an empty file

我的资源文件夹中有一个 .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 文件包含数据。

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

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

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