Как я могу повторно открыть закрытый InputStream, когда мне нужно использовать его 2 раза

В настоящее время я использую InpuStream, чтобы получить ответ JSON от моего сервер.

Мне нужно сделать две вещи:

  1. Анализировать и отображать значения на экране
  2. Сохранить этот канал в файле SDCard

Это не вызывает у меня никаких проблем при использовании этих двух методов один за другим. .

Анализ выполняется с помощью GSON:

Gson gson = new Gson();
Reader reader = new InputStreamReader (myInputStream);
Result result = gson.FrmJson(reader, Result.class)

, а копия на SDCard выполняется с помощью

FileOutputStream f (...) f.write (buffer)

Оба они были протестированы.

TYПроблема в том, что после завершения синтаксического анализа я хочу записать на SDCard, а она ломается. Я понимаю, что мой InputStream закрыт, и в этом проблема.

Здесь есть что-то близкое к моему вопросу: Как кэшировать InputStream для многократного использования

Есть ли способ улучшить это решение и предоставить то, что мы можем использовать?

16
задан Community 23 May 2017 в 12:33
поделиться