我在项目的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。打印您的文件路径并查看您正在使用的实际路径。