2011-09-19 62 views
2

从我的应用程序写入内部存储器中的文件时遇到了一些问题。我开始了一个空指针异常,但找不到修复它的方法..而且实际上可以不明白哪一个元素是空的。Android在内部存储器中保存数据NullPointerException

这里是我正在使用的代码:

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. 上下文

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

第二种情况:

我节省了内部存储的文件相同的功能,但我打电话从另一个activity.Here该方法的情况是:

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

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

尝试如何初始化上下文?代码或代码片段有帮助 –

+0

上下文上下文;我不能使用context = this;因为它给了我一个错误。我尝试了context.getApplicationContext();也没有帮助。 –

回答

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

与这一个

+0

实际上,解决我的问题只有一个Activity.I有另一个活动,我只是调用创建和保存文件的方法..它会再次抛出一个nullpointerexception.I将更新我的问题与第二种情况。 –

+0

您可以通过与上述相同的方式来执行 –

+0

它不适用于第二种情况。 –

相关问题