* INITIALIZE VARIABLES
String serfilename;
List<HashMap<String, String>> painItems = new ArrayList<HashMap<String, String>>();
ON CREATE METHOD
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.addscreen);
//getPainItems from the saved file
if(loadListFromFile((ArrayList<HashMap<String, String>>) painItems) !=
null)
painItems = loadListFromFile((ArrayList<HashMap<String, String>>)
painItems);
}
从文件方法加载列表
private ArrayList<HashMap<String, String>> loadListFromFile(
ArrayList<HashMap<String, String>> masterlistrev) {
try {
FileInputStream fis = openFileInput(serfilename);
ObjectInputStream ois = new ObjectInputStream(fis);
masterlistrev = (ArrayList<HashMap<String, String>>) ois.readObject();
} catch (Exception e) {
e.printStackTrace();
}
return masterlistrev;
}
写入文件列表
private void writeListToFile(ArrayList<HashMap<String, String>> masterlistrev){
File myfile = getFileStreamPath(serfilename);
try {
if(myfile.exists() || myfile.createNewFile()){
FileOutputStream fos = openFileOutput(serfilename, MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(masterlistrev);
}
} catch (Exception e) {
e.printStackTrace();
}
}
ONSTOP()方法
protected void onStop(){
super.onStop();
writeListToFile((ArrayList<HashMap<String, String>>) painItems);
}
我在File myfile = getFileStreamPath(serfilename);上得到一个NULL指针异常。我该如何解决这个问题..有没有更好的方法呢??
答案 0 :(得分:1)
根据您粘贴的内容,您的serfilename
为null
,并且永远不会设置为路径。
即便如此,即便如此,
File myfile = getFileStreamPath(serfilename);
由于您的(null)输入,将被抛出NullPointerException
。
说服自己。尝试:
if(null == serfilename)
throw new RuntimeException ("serfilename is null!");
File myfile = getFileStreamPath(serfilename);