我的资源文件夹中的文件未使用 try-with-resources 和 BufferedWriter 写入,为什么?
A file in my resources folder isn't getting written with try-with-resources and BufferedWriter, why?
我的项目的资源文件夹中有一个文件 test.txt
,我正在尝试向其中写入一个字符串列表,每行一个(来自测试 class,如果重要的话)。
出于某种原因,尽管没有抛出或捕获异常,但我已经尝试了很多东西,但我无法写入它。例如:
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()
识别路径,并且确实 return true
。我错过了什么?
我假设你是 运行 这个来自你的 IDE?
IDE 将构建项目并将资源 连同编译的.class
文件复制到输出目录。
当修改这些资源中的任何一个时,复制的资源文件将被覆盖,但源资源文件不会被覆盖——我假设您现在正在查看这些资源,并且发现它们看起来仍然一样。
此外,每次构建项目时,复制的资源文件可能会被覆盖。
提示:输出(打印)路径以检查您实际修改的文件。
如果您使用 Maven,src/main/resources 中的文件将被复制到输出文件夹 target/classes/test.txt。打印您的文件路径并查看您正在使用的实际路径。
我的项目的资源文件夹中有一个文件 test.txt
,我正在尝试向其中写入一个字符串列表,每行一个(来自测试 class,如果重要的话)。
出于某种原因,尽管没有抛出或捕获异常,但我已经尝试了很多东西,但我无法写入它。例如:
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()
识别路径,并且确实 return true
。我错过了什么?
我假设你是 运行 这个来自你的 IDE?
IDE 将构建项目并将资源 连同编译的.class
文件复制到输出目录。
当修改这些资源中的任何一个时,复制的资源文件将被覆盖,但源资源文件不会被覆盖——我假设您现在正在查看这些资源,并且发现它们看起来仍然一样。
此外,每次构建项目时,复制的资源文件可能会被覆盖。
提示:输出(打印)路径以检查您实际修改的文件。
如果您使用 Maven,src/main/resources 中的文件将被复制到输出文件夹 target/classes/test.txt。打印您的文件路径并查看您正在使用的实际路径。