Данные не отображаются в окне просмотра при добавлении в файл - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь сохранить данные json в файл. Это код для создания каталогов и файлов.

      public void filecreation() throws IOException {
       File mediaStorageDir = new File(getActivity().getFilesDir() + "/" + 
      "Zerribelum");
    if (!mediaStorageDir.exists()) {
        if (!mediaStorageDir.mkdirs()) {
            Log.d("App", "failed to create directory");
            //  return null;
        } else {
            Log.d("Apppppp", "create directory");
            File textfolder = new File(mediaStorageDir, "Text");
            if (!textfolder.exists()) {
                textfolder.mkdirs();
                File newtext = new File(textfolder, "dummy.txt");
                stream = new FileOutputStream(newtext);
                bw = new BufferedWriter(new OutputStreamWriter(stream));

            }
            File imagefolder = new File(mediaStorageDir, "Image");
            if (!imagefolder.exists()) {
                imagefolder.mkdirs();
            }
            File videofolder = new File(mediaStorageDir, "Video");
            if (!videofolder.exists()) {
                videofolder.mkdirs();
            }
        }

    }
}

Я хочу поместить данные json в файл.

      try {
        JSONArray mJsonTopicArray = mJsonObject.getJSONArray(AppConstants.APIKeys.TOPICS_LIST);
        for (int i = 0; i < mJsonTopicArray.length(); i++) {
            Topics mTopics = new Topics();
            mTopics.setId(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.ID));
            mTopics.setTitle(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.TOPICS));
            mTopics.setImage(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.TOPICS_IMAGE));
            mTopics.setDescription(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.DESCRIPTION));

            mTopicsArrayList.add(mTopics);
            bw.write(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.DESCRIPTION));
            bw.newLine();
        }
          bw.close();
         mCategoryListRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    mCategoryListRecyclerView.setHasFixedSize(true);
    mCategoryListRecyclerView.setAdapter(new ParallaxRecyclerAdapter(context, HomeFragment.this, mTopicsArrayList));
    } catch (JSONException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

Проблема в том, что если я не добавлю bw.write и bw.close() строк, данные будут отображаться в recyclerview .Но когда я добавляю эти строки, данные добавляются в файл, но не отображаются в представлении recylcer.Я хочу, чтобы и то и другое было сделано.В чем будет проблема?

Примечание: публичный поток FileOutputStream;

публичный BufferedWriter bw;Инициализировано.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

решена, проблема из-за исключения Nullpointer. Так что обрабатывается с помощью try catch.

           try {
                bw.write(mJsonTopicArray.getJSONObject(i).getString(AppConstants.APIKeys.TOPICS));
                bw.newLine();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            } catch (NullPointerException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
0 голосов
/ 25 мая 2018

Проверьте вашу трассировку стека, ваш код должен быть сбой, и вы не замечаете его из-за попытки перехвата

Подключите отладчик и проверьте элементы в списке массивов после инициализации адаптера.Если предметы присутствуют, они будут работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...