0

您好我有一个项目应该将 JSON 数组保存到内部存储中。这是我的代码:

public void createFile(String data){
    try{
        FileOutputStream fos = openFileOutput("userObj", Context.MODE_PRIVATE);
        fos.write(data.getBytes());
        fos.close();
        Log.d(TAG, "Successfully created userObj file.");
    }catch (Exception e){
        Log.d(TAG, "Failed to create userObj " + e);
    }
}

但是当我打电话时,createFile(response); 我得到了

java.lang.NullPointerException at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:180)
4

2 回答 2

0
  1. 无论您使用内部存储还是外部存储,请检查您是否具有 WRITE_EXTERNAL_STORAGE 权限。
  2. 检查文件路径是否正确。您必须通过以下方式创建文件路径Environment.getExternalStorageDirectory ()

注意:不要被这里的“外部”这个词弄糊涂了。最好将此目录视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并且在所有应用程序之间共享(不强制执行权限)。传统上这是一张 SD 卡,但它也可以作为设备中的内置存储实现,与受保护的内部存储不同,并且可以作为文件系统安装在计算机上。

于 2014-03-25T06:45:58.927 回答
0

我在 android.content.ContextWrapper.openFileOutput(ContextWrapper.java:180) 处收到 java.lang.NullPointerException

你没有一个有效的Context你正在使用。

可能是Activity你用new. 不要那样做。活动只能通过Intent框架实例化。如果需要传递Context周围,传递对框架初始化Context对象的引用,例如Activity周围。

于 2014-03-25T06:49:46.123 回答