声明:这仅仅只是一个初学者的设想,可能实用性并不高
在做一个项目的时候,需要从聚合数据上获取数据,JSON解析后封装成类,存到List里,然后放入ListView中显示。
从获取到显示此数据的方法很简单,而且代码稍长,就不在这里详细列出了。
一开始,只是随便查了查数据就开始写,结果遇到问题越来越多。
1)直接调用context.getExternalCacheDir().getAbsoluteFile()方法,错误代码如下
W/System.err(2140): java.io.IOException: open failed: EROFS (Read-only file system)
查了查网上资料,有的说是不允许写入操作,需要启动linux更改adb设置等等;后来想了想,貌似忘记加权限了,所以在读写文件时,别忘了添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2)当然,即便添加了,又遇到了W/System.err(4335): Caused by: libcore.io.ErrnoException: write failed: EBADF (Bad file number) 这个问题;这是因为拼接文件路径的时候,少加了“/”的原因~4
3)基本功不好,写东西总是查来查去的,即使路径对了,问题还是没有解决,因为对象忘了实现序列化,也就是实现Serializable接口......
4)想到的写入文件的写法如下:
if(!file.exists())
{
try {
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file, true);
for(Book book: result)
{
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(book);
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
当然,还是没有写入成功!!!!!!!!!!!!!!!
=================================================================================
遇到的问题太多了,打算拜读两篇文章再继续
1. Android缓存字符串,对象等其他数据
地址:http://my.oschina.net/u/1471093/blog/3459462. Android DiskLruCache完全解析,硬盘缓存的最佳方案(郭大写的)