如何使用Java访问读写资源

如何使用Java访问读写资源,java,resources,Java,Resources,在过去,我将我的“resources”目录作为源文件夹(因此我的资源最终打包在最终的JAR中),并使用classLoader.getResource()检索资源。但是,这只适用于阅读资源,而不适用于编写资源 阅读和写作资源的推荐访问方式是什么?我知道以下方法,但两者都有缺点: System.getProperty(“user.dir”)-这取决于从特定工作目录运行程序的用户 System.getProperty(“user.home”)-这取决于安装到用户主目录的资源 尝试getClass().

在过去,我将我的“resources”目录作为源文件夹(因此我的资源最终打包在最终的JAR中),并使用
classLoader.getResource()
检索资源。但是,这只适用于阅读资源,而不适用于编写资源

阅读和写作资源的推荐访问方式是什么?我知道以下方法,但两者都有缺点:

  • System.getProperty(“user.dir”)
    -这取决于从特定工作目录运行程序的用户
  • System.getProperty(“user.home”)
    -这取决于安装到用户主目录的资源
  • 尝试
    getClass().getResource(路径)

    getClass().getResource(path)
    使用类加载器加载资源。类路径中的资源可以通过这种方式加载。 假设你有一个目录

    MyApplication
    1.Class1.java
    2.Class1.java
    3.file.txt
    例如,要获取上面的文本文件,您可以作为访问它。


    请允许我将您链接到一个文档,您可以在其中看到如何读取和写入属性,您可以从中获取代码:


    关于

    我几分钟前写了我的回复,假设您正在编写一个应用程序,(控制台?、Swing?),请更具体一些。我正在编写一个游戏。为什么它使用console/Swing/etc很重要?我想知道如果您正在编写后端应用程序(servlet、DAOs、ejb等),那么建议另一种解决方案的方法会有所不同。
    File file = new File(getClass().getResource("file.txt").toString());