Как сохранить и извлечь InputStream в текстовом файле с меньшими издержками

Я получаю / скачиваю JSON кормить как InputStreamReader и мне нужно пройти это InputStreamReader в JsonReader для разбора этого.

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

Все хорошо. Но я хочу кешировать это InputStreamReader или эти данные в каком-то другом формате во внутреннее хранилище для последующего использования. Для кеширования я использую текстовый файл для сохранения. (AFAIK, 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 для последующего использования, чтобы сохранить их как .txt файл?

1 ответ

Решение

Вы не можете сократить этот процесс как String лучший формат для сохранения информации в файле AFAIK. Также inputStreamReader & inputStream не подходит объект для записи. Там может быть другой лучший объяснительный ответ:)

Другие вопросы по тегам