Java 为内部存储器创建文件时返回空指针异常
嗨,我有一个项目,应该保存一个JSON数组到内部存储。 这是我的密码:Java 为内部存储器创建文件时返回空指针异常,java,android,json,internal-storage,Java,Android,Json,Internal Storage,嗨,我有一个项目,应该保存一个JSON数组到内部存储。 这是我的密码: public void createFile(String data){ try{ FileOutputStream fos = openFileOutput("userObj", Context.MODE_PRIVATE); fos.write(data.getBytes()); fos.close(); Log.d(TAG, "Successfull
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)
检查您是否拥有写入外部存储的权限,无论您使用的是内部存储还是外部存储
检查文件路径是否正确。您必须通过Environment.getExternalStorageDirectory()
注意:这里的“外部”一词不要混淆。这个目录
最好将其视为介质/共享存储。它是一个
可以保存相对大量的数据,并且可以跨多个服务器共享
所有应用程序(不强制执行权限)。传统上这是
SD卡,但它也可以作为
与受保护的内部存储器不同的设备,可以
作为文件系统安装在计算机上
我在android.content.ContextWrapper.openFileOutput(ContextWrapper.java:180)上得到java.lang.NullPointerException
您没有正在使用的有效上下文
很可能这是一个活动
您已经用新的
对自己进行了实例化。不要这样做。活动只能通过框架的意图
进行实例化。如果您需要传递上下文
,请传递对框架初始化的上下文
对象的引用,例如活动
大约。您应该显示openFileOutput的代码。堆栈跟踪是什么样子的?您确定数据
不为空吗?您可能会得到空响应。请通过e.printStackTrace()尝试完成堆栈跟踪
。是的,数据或fos为空。请使用调试器并检查是否正确创建了对象。@jonsket数据不为空。