Android 如何以较少的开销在文本文件中保存和检索InputStream
我正在以Android 如何以较少的开销在文本文件中保存和检索InputStream,android,file,caching,inputstreamreader,Android,File,Caching,Inputstreamreader,我正在以InputStreamReader的形式检索/下载JSONfeed,我需要将此InputStreamReader传递到JsonReader进行解析 JsonReader reader = new JsonReader(isr); // isr is the InputStreamReader instance 一切都很好。但我想将此InputStreamReader或其他格式的数据缓存到内部存储器中以供以后使用。对于缓存,我使用文本文件来保存。(顺便说一句,android默认缓存将数据
InputStreamReader
的形式检索/下载JSON
feed,我需要将此InputStreamReader
传递到JsonReader
进行解析
JsonReader reader = new JsonReader(isr); // isr is the InputStreamReader instance
一切都很好。但我想将此InputStreamReader
或其他格式的数据缓存到内部存储器中以供以后使用。对于缓存,我使用文本文件来保存。(顺便说一句,android默认缓存将数据保存在外部存储器中,有些设备没有外部存储器)
为了保存此文件,我使用了.txt
文件。但我只能将String
格式化数据保存/缓存到文件中,并将其作为String
读取。这是我到目前为止编写的用于写入和读取文件的代码:
public static void writeObject(Context context, String key, Object object)
throws IOException {
FileOutputStream fos = context
.openFileOutput(key, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(object);
oos.close();
fos.close();
}
public static Object readObject(Context context, String key)
throws IOException, ClassNotFoundException {
FileInputStream fis = context.openFileInput(key);
ObjectInputStream ois = new ObjectInputStream(fis);
Object object = ois.readObject();
return object;
}
但这种方法需要太多的转换:
inputStreamReader -> inputStream -> String //to save
String -> inputStream -> inputStreamReader // retrieve
如何以较少的开销保存/缓存此数据?可能需要将
inputStreamReader
转换为outputStreamReader
或类似的东西才能写入。但我想不出做这件事的关联代码。代码应该是什么?我还可以用android建议的方式缓存这些数据,以便以后使用intead将其保存为.txt
文件吗 您不能缩短此过程,因为String
是将信息保存在文件AFAIK中的最佳格式。另外,inputStreamReader
和inputStream
也不适合编写。可能还有其他更好的解释性答案:)