我的资源文件夹中的文件没有使用资源试用和缓冲编写器写入,为什么?



我在项目的resources文件夹中有一个文件test.txt,我正试图向它写一个字符串列表,每行一个(如果重要的话,来自测试类(
由于某种原因,尽管没有异常被抛出或捕获,但我尝试了很多东西,但都无法写入。例如:

Path p = Paths.get(ClassLoader.getSystemResource("test.txt").toURI());
try (BufferedWriter writer = Files.newBufferedWriter(p)) 
{
for (String line : lines) writer.write(line);
} 

catch (IOException e) 
{
e.printStackTrace();
}

Files.write(p, lines)也不起作用。我很困惑,因为没有错误报告,但文件仍然是空的。我还确保使用p.toFile().exists()识别路径,并且它确实返回true。我错过了什么?

我想您是在IDE中运行这个?

IDE将构建项目并将资源以及编译的.class文件复制到输出目录。当修改这些资源中的任何一个时,复制的资源文件都会被覆盖,但不会覆盖源资源文件——我想你现在看到的是这些文件,它们看起来仍然一样。此外,每次构建项目时,复制的资源文件可能会被覆盖。

提示:输出(打印(路径以检查您实际修改的文件。

如果您使用maven,src/main/resources中的文件将被复制到输出文件夹target/classes/test.txt。打印您的文件路径并查看您正在使用的实际路径。

最新更新