如何从Java中的类路径加载属性文件

安德鲁·拉利斯(Andrew Lalis)

我正在尝试创建一个配置文件,以在类路径中保存客户端的用户名和ip数据,就像在项目中的资源文件夹中一样。我可以像这样检索属性:

public String getProperty(String property){

    String result = null;

    try{

        InputStream inputStream = this.getClass().getResourceAsStream(filename);
        Properties properties = new Properties();

        if (inputStream != null){

            properties.load(inputStream);
            System.out.println(this.getClass().getResource(filename).toString());

        }else {

            System.out.println("File not found or loaded: "+filename);

        }

        result = properties.getProperty(property, null);

        inputStream.close();

    }catch (Exception e){
        e.printStackTrace();            
    }

    return result;

}

但是我还希望能够设置可以从文件中获取的那些值,因此,为了做到这一点,我使用以下方法:

public void setProperty(String property, String value){

    try{

        OutputStream out = new FileOutputStream(this.getClass().getResource(filename).getFile());
        Properties properties = new Properties();

        properties.setProperty(property, value);
        properties.store(out, "Optional comment");
        out.close();

    }catch (Exception e){

        System.out.println("Unable to load:"+filename);
        e.printStackTrace();

    }

}

但是,运行该方法给我以下错误:

java.io.FileNotFoundException: file:/home/andrew/Documents/Programming/Executable-JARs/SchoolClient.jar!/client-config.properties (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
at com.andrewlalis.utils.DataSaver.setProperty(DataSaver.java:54)
at com.andrewlalis.MainClient.getNewIp(MainClient.java:173)
at com.andrewlalis.ClientWindow$4.mouseClicked(ClientWindow.java:142)

现在,我已经确认该文件client-config.properties确实存在,因为我能够从中读取数据,但是似乎无法为其创建输出流。这是为什么?先感谢您。

我的问题是我无法从类路径中的文件打开输出流。

一月

该属性位于您的.jar文件中。因此,您的问题应该是“如何修改当前正在执行的.jar文件的内容”,这不是一个好主意。

这里的主要问题是:

您是否需要坚持这些价值观?

如果您设置的值仅在程序运行时才保持活动状态,那很好-.setProperty(key, value);一切都很好。

另一方面,如果您希望这些值在应用程序的下一次启动时得以保留,则可能需要考虑Preferences使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从AWS Lambda Java中的类路径加载属性文件

来自分类Dev

如何使用Java中的注释从类路径加载甚至自动连接.json文件?

来自分类Dev

如何从Java中的类路径加载“ context.xml”?

来自分类Dev

在Java类路径上创建属性文件

来自分类Dev

Java从类路径加载文件与文件系统,哪个更好?

来自分类Dev

如何加载不在类路径中且在 jar 中的类?

来自分类Dev

如何将本地 html 文件(不在我的类路径中)加载到 WebView?

来自分类Dev

如何将路径从文件传递到我的Java类的系统属性

来自分类Dev

如何从类路径中获取jar文件?

来自分类Dev

如何从类路径加载ChromeDriver二进制文件?

来自分类Dev

加载.Jar文件或类路径中包含的资源(图像)

来自分类Dev

如何使用Java中的类路径使用项目文件外部的类

来自分类Dev

如何使用类加载器在 model.zip 文件中获取输入流,其中 zip 文件包含在类路径中的 .jar 文件中

来自分类Dev

如何从中加载值。Cucumber-jvm步骤类中的属性文件

来自分类Dev

难道从类路径上的文件中读取属性?

来自分类Dev

Jetty Maven插件-将属性文件放在类路径中

来自分类Dev

Java无法从类路径加载类

来自分类Dev

如何读取位于工作区外部文件夹中的java类中的属性文件?

来自分类Dev

从Grails中的Java类读取属性文件

来自分类Dev

如何加载在JRuby中编译的Java类?

来自分类Dev

无法从类路径加载jks文件

来自分类Dev

无法加载类路径上的jar文件

来自分类Dev

无法加载类路径上的jar文件

来自分类Dev

使用spring从外部路径加载属性文件

来自分类Dev

如何在Java中验证文件路径?

来自分类Dev

java类如何在WebLogic 12c中定位和加载静态pdf文件?

来自分类Dev

Javac类路径(.java文件)

来自分类Dev

可以获取在Java中调用方法的类的文件路径吗?

来自分类Dev

如何加载资产文件夹中的属性文件?

Related 相关文章

  1. 1

    如何从AWS Lambda Java中的类路径加载属性文件

  2. 2

    如何使用Java中的注释从类路径加载甚至自动连接.json文件?

  3. 3

    如何从Java中的类路径加载“ context.xml”?

  4. 4

    在Java类路径上创建属性文件

  5. 5

    Java从类路径加载文件与文件系统,哪个更好?

  6. 6

    如何加载不在类路径中且在 jar 中的类?

  7. 7

    如何将本地 html 文件(不在我的类路径中)加载到 WebView?

  8. 8

    如何将路径从文件传递到我的Java类的系统属性

  9. 9

    如何从类路径中获取jar文件?

  10. 10

    如何从类路径加载ChromeDriver二进制文件?

  11. 11

    加载.Jar文件或类路径中包含的资源(图像)

  12. 12

    如何使用Java中的类路径使用项目文件外部的类

  13. 13

    如何使用类加载器在 model.zip 文件中获取输入流,其中 zip 文件包含在类路径中的 .jar 文件中

  14. 14

    如何从中加载值。Cucumber-jvm步骤类中的属性文件

  15. 15

    难道从类路径上的文件中读取属性?

  16. 16

    Jetty Maven插件-将属性文件放在类路径中

  17. 17

    Java无法从类路径加载类

  18. 18

    如何读取位于工作区外部文件夹中的java类中的属性文件?

  19. 19

    从Grails中的Java类读取属性文件

  20. 20

    如何加载在JRuby中编译的Java类?

  21. 21

    无法从类路径加载jks文件

  22. 22

    无法加载类路径上的jar文件

  23. 23

    无法加载类路径上的jar文件

  24. 24

    使用spring从外部路径加载属性文件

  25. 25

    如何在Java中验证文件路径?

  26. 26

    java类如何在WebLogic 12c中定位和加载静态pdf文件?

  27. 27

    Javac类路径(.java文件)

  28. 28

    可以获取在Java中调用方法的类的文件路径吗?

  29. 29

    如何加载资产文件夹中的属性文件?

热门标签

归档