【问题标题】:Properties keep driving me crazy. Can't save it! "FileNotFound"属性让我发疯。无法保存! “文件未找到”
【发布时间】:2011-09-22 06:27:17
【问题描述】:

这些属性让我发疯。我到处都在阅读,即使加载属性也应该没有问题,只需使用:

Properties p = new Properties();
p.load(new FileInputStream("filename.properties");

虽然在我的情况下它不起作用。 Java 没有找到位于类目录中的文件!这就是为什么我必须将它与 Assetmanager 一起使用:

String defaultProfileProperties = "filename.properties";
Resources resources = this.getResources();
AssetManager assetManager = resources.getAssets();
final Properties properties = new Properties();

try {
    InputStream inputStream = assetManager.open(defaultProfileProperties);
    properties.load(inputStream);
} catch (IOException e) {
    System.err.println("Failed to open " + defaultProfileProperties + " property file");
    e.printStackTrace();
}

将 filename.properties 放入资产文件夹中。

好吧,现在我根本无法使用 .store(out,comment) 来保存属性文件 ... 我尝试使用路径设置为“filename.properties”或“assets/filename.properties”的 FileOutputStream。他们都没有工作。我什至在这里和那里添加了一个斜线,但没有任何帮助!我在网上找不到任何教程,也没有人遇到同样的问题!

你能帮帮我吗?我想这是一件很简单的事情,但我不知道如何......等等

【问题讨论】:

    标签: java android properties save store


    【解决方案1】:

    如果您使用 FileInputStream 打开文件,则起始目录(相对路径)基于您启动 java 时的工作目录,而不是类路径。打开带有资源的文件将引用类路径条目。

    您在使用 FileInputStream() 时是否尝试过使用完整路径?试试看它是否有效,如果有效,那么您需要在启动时设置工作目录和/或通过起始目录的相对路径引用您的文件。

    【讨论】:

      【解决方案2】:

      试试这个:

          InputStream in = this.getClass().getResourceAsStream("filename.properties");
          Properties p = new Properties();
          p.load(in);
      

      【讨论】:

        猜你喜欢
        • 2013-07-18
        • 2011-01-30
        • 1970-01-01
        • 2020-01-15
        • 2021-12-21
        • 2021-07-06
        • 2011-05-30
        • 2012-11-02
        • 2020-11-13
        相关资源
        最近更新 更多