1

我正在检索/下载JSON提要InputStreamReader,我需要将其传递InputStreamReader 给以JsonReader进行解析。

JsonReader reader = new JsonReader(isr); // isr is the InputStreamReader instance

一切正常。但我想将这个InputStreamReader或这个数据以其他格式缓存到内部存储中以备后用。对于缓存,我使用文本文件进行保存。(AFAIK,android默认缓存将数据保存在外部存储中,有些设备没有外部存储)。

为了保存这个文件,我正在使用.txtfile. 但我只能将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建议的方式缓存这些数据以供以后使用而不是将其保存为.txt文件吗?

4

1 回答 1

0

您不能将此过程缩短String为将信息保存在 AFAIK 文件中的最佳格式。inputStreamReader&inputStream也不是合适的对象。可能还有其他更好的解释性答案:)

于 2013-09-05T05:23:46.217 回答