簡體   English   中英

我的資源文件夾中的文件未使用 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()識別路徑,並且它確實返回true 我錯過了什么?

我假設你是從你的 IDE 運行這個?

IDE 將構建項目並將資源與已編譯的.class文件一起復制到 output 目錄 當修改這些資源中的任何一個時,復制的資源文件將被覆蓋,但源資源文件不會被覆蓋——我假設您現在正在查看這些資源,並且發現它們看起來仍然一樣。 此外,每次構建項目時,復制的資源文件都可能被覆蓋。

提示:output(打印)檢查您實際修改的文件的路徑。

如果您使用的是 maven,src/main/resources 中的文件將被復制到 output 文件夾 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()識別路徑,並且它確實返回true 我錯過了什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM