Android在内部存储中保存数据NullPointerException

时间:2011-09-19 06:28:01

标签: android storage internal

我从我的应用程序在内部存储中写一个文件有一点问题。我得到一个空指针异常,但找不到修复它的方法..实际上无法理解哪一个元素为空。

以下是我正在使用的代码:

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);,我无法得到它,这导致了这个异常:

  
      
  1. 上下文
  2.   

  
      
  1. autohash - 文件(存在或不存在)。
  2.   

第二种情况:

我具有将文件保存在内部存储中的相同功能,但我从另一个活动中调用该方法。这是情况:

我通过互联网收到了不同的数据包,我正在做这样的事情:

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()我正在尝试保存文件。

所以欢迎任何形式的帮助!提前致谢!

1 个答案:

答案 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();

试试这个