我有个档案 test.txt
在我的项目的resources文件夹中,我正在尝试为它编写一个字符串列表,每行一个(如果有关系的话,来自测试类)。
出于某种原因,尽管没有异常被抛出或捕捉,我尝试了很多事情,但我不能写它。例如:
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` . 我错过了什么?
3条答案
按热度按时间wbgh16ku1#
如果您使用的是maven,src/main/resources中的文件将被复制到输出文件夹target/classes/test.txt。打印您的文件路径并查看您正在使用的实际路径。
cngwdvgl2#
首先,将更改输出目录(编译资源目录)下的文件。你需要关闭writer
wgmfuz8q3#
我猜你是在ide上运行的?
ide将构建项目,并将资源与编译的
.class
文件到输出目录。当修改这些资源时,复制的资源文件将被覆盖,而不是源资源文件-我假设您现在正在查看这些文件,并看到它们看起来仍然相同。而且,每次生成项目时,复制的资源文件可能会被覆盖。提示:输出(打印)路径以检查实际修改的文件。