簡體   English   中英

通過Resource讀取和寫入Java文件

[英]Read and Write to Java file via Resource

我正在嘗試讀取和寫入文件,但我想通過資源訪問該文件。

這就是我的工作

File f = new File(ClassLoader.getSystemResource("/blah/blah/Properties.prop").toURI());
BufferedReader br = new BufferedReader(new FileReader(f));
String line = br.readLine();

PrintWriter p = new PrintWriter(new File(ClassLoader.getSystemResource("/blah/blah/Properties.prop").toURI()));

但似乎都不正確。 這樣做的正確方法是什么?

試試以下:

     InputStreamReader isReader= 
                      new InputStreamReader(
                          this.getClass().getResourceAsStream(templateName));
      BufferedReader br = new BufferedReader(isReader);     

要么

     InputStreamReader isReader= 
                      new InputStreamReader(
                          <youclassName>.class.getResourceAsStream(templateName));
      BufferedReader br = new BufferedReader(isReader);   

輸出,請嘗試以下:

      PrintWriter writer = 
               new PrintWriter(
                     new File(this.getClass().getResource(templateName).getPath());

上面的所有解決方案都顯示了如何在build文件夾中接收對資源的訪問權限。 這意味着已將資源移動到使用.class文件構建目錄。
如果您需要將一些文件寫入資源以便在終止程序后保存它們,那么您將必須描述從根項目開始的路徑:

./src/main/resources/foo.ext

這種解決方法通常不推薦,但在其他情況下可能是必要的。

更簡單地說,

 try (BufferedReader bufferedReader = Files.newBufferedReader(Paths.get(Resources.getResource("path").toURI()))) {
        //bufferedReader...
    }
    try (BufferedWriter bufferedWriter = Files.newBufferedWriter(Paths.get(Resources.getResource("path").toURI()))) {
        //bufferedWriter...
    }

請注意,該路徑是相對於資源文件夾的。

暫無
暫無

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

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