我正在尝试使用Hashmap<String, Integer>
和ObjectOutPutStream
的帮助来撰写和阅读ObjectInputStream
。这两个是我这样做的方法:
protected void saveHashMap(HashMap<String, Integer> newIDs){
if (fileIDs == null){fileIDs = new File("IDs.txt");}
try {
FileOutputStream fos = new FileOutputStream(fileIDs);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(newIDs);
oos.close();
}catch (IOException e){
e.printStackTrace();
}
}
protected HashMap readHashmap(){
HashMap<String, Integer> map = null;
if(fileIDs == null){fileIDs = new File("IDs.txt");}
try{
FileInputStream fis = new FileInputStream(fileIDs);
ObjectInputStream ois = new ObjectInputStream(fis);
map = (HashMap) ois.readObject();
ois.close();
fis.close();
}catch(IOException e){
e.printStackTrace();
}catch (ClassNotFoundException e){
e.printStackTrace();
}
if(map != null){
return map;
}else{
return new HashMap<String, Integer>();
}
我目前遇到的问题是readHashMap()
会抛出IOEXception
“找不到文件”。通过一个糟糕的实现,我必须在调用readHashmap()
之前调用writeHashmap()
,但我认为这不是问题所在。我不确定为什么没有创建文件,所以我将非常感谢你的帮助。如果您需要更多代码,我会添加它。