Как кэшировать / читать файл JSON? - PullRequest
0 голосов
/ 30 апреля 2019

У меня проблемы с кешированием и чтением файла json, я использую пример из google dev для кеширования файла, а затем пытаюсь прочитать файл, используя другую функцию readCache(), но я получаю ошибка на

outputStream.read () -> не может разрешить метод read () .....

Может кто-нибудь объяснить мне, что я делаю не так?

private void cacheFile(JSONObject response) {
     JSONObject res  = response;
     String filename = "jsonfile";
     FileOutputStream outputStream;

     try {
         outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
         outputStream.write(res.toString().getBytes("utf-8"));
         outputStream.close();
         Log.e(TAG, "Success");
     } catch (Exception e) {
         e.printStackTrace();
     }
}

private void readCache(String filename) {
    FileOutputStream outputStream;
    try {
        outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
        outputStream.read();
        outputStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

1 Ответ

2 голосов
/ 30 апреля 2019

Попробуйте изменить readCache() метод на

private void readCache(String filename) {
    FileInputStream inputStream;
    try {
        inputStream = openFileInput(filename);
        String body = inputStreamToString(inputStream);
        inputStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

private String inputStreamToString(InputStream inputStream) throws Exception {
    ByteArrayOutputStream result = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int length;
    while ((length = inputStream.read(buffer)) != -1) {
        result.write(buffer, 0, length);
    }
    return result.toString("UTF-8");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...