0

有人可以解释这里出了什么问题我正在使用以下功能

public void WriteSettings(Context context, String data){ 
    FileOutputStream fOut = null; 
    OutputStreamWriter osw = null;

    try{
     fOut = context.openFileOutput("schemas.json",Context.MODE_APPEND);       
     osw = new OutputStreamWriter(fOut); 
     osw.write(data); 
     osw.flush(); 
     Toast.makeText(context, data+"Data",Toast.LENGTH_SHORT).show();
     Toast.makeText(context, "Settings saved",Toast.LENGTH_SHORT).show();
     } 
     catch (Exception e) {       
     e.printStackTrace(); 
     Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show();
     } 
     finally { 
        try { 
               osw.close(); 
               fOut.close(); 
               } catch (IOException e) { 
               e.printStackTrace(); 
               } 
     } 
}

并在我的 http 请求完成后调用

JSONObject json_res = currentDFD.getJSONObject("result"); WriteSettings(getBaseContext(),json_res.toString());

结果在 toast 中发出警报,但未写入文件位于 assets 文件夹中的文件,提前感谢

4

1 回答 1

2

AFAIK 你不能。assets 文件夹在运行时是只读的。

选择不同的位置来保存您的数据,有关更多信息,请参阅Android 中的数据存储。

assets 文件夹就像文件夹 res、src、gen 等。这些都有助于提供不同的文件作为构建系统的输入,从而为您的应用程序生成 APK 文件。

在您的应用程序运行时,所有这些都是只读的。在运行时,您只能写入 SD 卡。

于 2013-10-28T08:22:23.937 回答