Java Android:从文件中写入和读取
我正试图在Java Android:从文件中写入和读取,java,android,file,Java,Android,File,我正试图在ObjectOutPutStream和ObjectInputStream的帮助下编写和阅读Hashmap。以下是我的两种方法: protected void saveHashMap(HashMap<String, Integer> newIDs){ if (fileIDs == null){fileIDs = new File("IDs.txt");} try { FileOutputStream fos = new FileOutputS
ObjectOutPutStream
和ObjectInputStream
的帮助下编写和阅读Hashmap
。以下是我的两种方法:
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>();
}
受保护的void saveHashMap(HashMap newIDs){
如果(fileIDs==null){fileIDs=新文件(“IDs.txt”);}
试一试{
FileOutputStream fos=新的FileOutputStream(FileID);
ObjectOutputStream oos=新的ObjectOutputStream(fos);
oos.writeObject(newid);
oos.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
受保护的HashMap readHashmap(){
HashMap=null;
如果(fileIDs==null){fileIDs=新文件(“IDs.txt”);}
试一试{
FileInputStream fis=新的FileInputStream(FileID);
ObjectInputStream ois=新ObjectInputStream(fis);
map=(HashMap)ois.readObject();
ois.close();
fis.close();
}捕获(IOE异常){
e、 printStackTrace();
}catch(classnotfounde异常){
e、 printStackTrace();
}
if(map!=null){
返回图;
}否则{
返回新的HashMap();
}
目前我遇到的问题是
readHashMap()
抛出一个IOEXception
“未找到文件”。通过一个错误的实现,我必须在调用writeHashmap()之前调用readHashMap()
,但我不认为这是问题所在。我不确定为什么没有创建任何文件,因此我非常感谢您的帮助。如果您需要更多代码,我会添加它。为什么要从空文件中读取某些内容?这没有意义。您必须使用上下文方法创建文件…而且,读取方法也不行如果没有任何问题,d将起作用。可能是我错了,但是您的代码实际上是在android设备的根目录下写入的,这可能是不允许的。如果您尝试写入具有写入外部存储权限的新文件(Environment.getExternalStorageDirectory(),“IDs.txt”);
,它是否起作用。