我从我的应用程序在内部存储中写一个文件有一点问题。我得到一个空指针异常,但找不到修复它的方法..实际上无法理解哪一个元素为空。
以下是我正在使用的代码:
hash= jsonObj.getString("hash");
Log.w("CLIENT AUTH HASH","SHOW CLIENT AUTH HASH : "+hash);
FileOutputStream out = context.openFileOutput("autohash",context.MODE_PRIVATE);
out.write(hash.getBytes());
out.close();
我正在尝试创建和编写此文件的类不是Activity
,它只是某种辅助类,这就是为什么当我尝试设置context=this;
时它会给我错误。
实际上它在这一行抛出的NullPointerException:FileOutputStream out = context.openFileOutput("autohash",context.MODE_PRIVATE);
,我无法得到它,这导致了这个异常:
- 上下文
醇>
或
- autohash - 文件(存在或不存在)。
醇>
第二种情况:
我具有将文件保存在内部存储中的相同功能,但我从另一个活动中调用该方法。这是情况:
我通过互联网收到了不同的数据包,我正在做这样的事情:
BasePacket packet; //all other packets extends this class.
byte[] buffer=byte[1024];
//packet calculations
switch(packetType){
case startPacket:
packet = new startPacket(/*params*/);
packet.startExecutePacket();
case endPacket:
//same procedure
}
并在startExecutePacket()
我正在尝试保存文件。
所以欢迎任何形式的帮助!提前致谢!
答案 0 :(得分:3)
<强> CallingActivity.java 强>
onCreate()
helperClass mHelper= new helperClass(CallingActivity.this);
<强> helperClass.java 强>
//declare a context
context refContext;
//constructor
public helperClass(context mContext)
{
refContext=mContext;
}
//and you code
hash= jsonObj.getString("hash");
Log.w("CLIENT AUTH HASH","SHOW CLIENT AUTH HASH : "+hash);
FileOutputStream out = refContext.openFileOutput("autohash",Context.MODE_PRIVATE);
out.write(hash.getBytes());
out.close();
试试这个