[英]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.