通过资源读取和写入 Java 文件

2022-09-01 20:54:49

我正在尝试读取和写入文件,但我想通过资源访问该文件。

这就是我的工作

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()));

但两者似乎都不正确。正确的方法是什么?


答案 1

对于输入,请尝试以下操作:

     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()));

答案 2

上面的所有解决方案都显示了如何获得对生成文件夹中资源的访问权限。这意味着资源已移动到具有.class文件的构建目录。
如果您需要将一些文件写入资源以在终止程序后保存它们,那么您必须描述从root项目开始的路径:

./src/main/resources/foo.ext

通常不建议使用此解决方案,但在其他情况下可能是必要的。


推荐