Android Studio会写入.properties文件

时间:2018-01-22 14:26:20

标签: java android

我跟着Where to put own properties file in an android project created with Android Studio?,我得到了一个InputStream,它成功地从我的.properties文件中读取。但是,我无法写入.properties文件,因为没有与 getBaseContext()。getAssets()。open(“app.properties”)类似的方法,它返回一个OutputStream。我也读过Java Properties File appending new values但这似乎没有帮助我,我的猜测是我的文件编写器的文件名错了,但我也试过“assets \ userInfo.properties”也行不通。

我的.properties文件位于src \ main \ assets \ userInfo.properties

    Properties props = new Properties();
    InputStream inputStream = null;
    try{
        inputStream = getBaseContext().getAssets().open("userInfo.properties");
        props.load(inputStream);

        props.put("name", "smith");
        FileOutputStream output = new FileOutputStream("userInfo.properties"); //this line throws error
        props.store(output, "This is overwrite file");

        String name = props.getProperty("name");
        Log.d(TAG, "onCreate: PROPERTIES TEST NAME CHANGE: " + name);

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

当前代码抛出此错误:

  

java.io.FileNotFoundException:userInfo.properties(只读文件系统)

2 个答案:

答案 0 :(得分:2)

您无法写入资源文件夹,因为它位于只读的APK中。

使用内部或外部存储

答案 1 :(得分:0)

您无法写入资源文件夹。如果您要更新属性文件,则必须将它们放在其他位置。如果您想要资产或原始文件夹中的初始版本,只需在首次使用该应用程序时将其复制到默认文件目录,然后在那里读取/写入。