Как я могу сохранить все данные в файле JSON? студия android

#java #android #json #android-studio #android-internal-storage

Вопрос:

Я использую Android studio. Код java. Я сохраняю данные, введенные из редактируемого текста, в формате json, создав файл во внутренней памяти устройства. Но он показывает только последние данные, которые я ввел. Каждая новая информация стирает и перезаписывает другую.Я хочу, чтобы он сохранял все данные, которые я ввел из редактируемого текста, по порядку, и видел их все.Как я могу это сделать ?

мой код:

 
 saveButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    String getname = editTextFileName.getText().toString();
                    String getdata= editTextData.getText().toString();
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("Name", getname );
                    jsonObject.put("Enroll_No", getdata );
                    jsonObject.put("Mobile", "4.example");
                    jsonObject.put("Address", "4.example");
                    jsonObject.put("Branch", "4.example");



                    String userString = jsonObject.toString();
                    File file = new File(context.getFilesDir(),"user.json");
                    FileWriter fileWriter = new FileWriter(file);
                    BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
                    bufferedWriter.write(userString);
                    bufferedWriter.close();



                }catch (JSONException e){
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }



            }
        });

 

Комментарии:

1. Попробуйте создать файловую машинку(файл, «wa»); для добавления данных. Или не используйте файловую машинку, если она не может добавлять, а просто выводит поток файлов.

2. I want it to save every data I entered from the edittext Вы хотите добавить все данные в один и тот же файл.

3. @blackapps спасибо вам за ваш ответ. В чем разница между «пишущей машинкой» и «потоком вывода файлов» ?

4. Писатель пишет. Ручей течет. Вы не можете их сравнивать.

Ответ №1:

Измените FileWriter fileWriter = new FileWriter(file); на FileWriter fileWriter = new FileWriter(file, true); для добавления.

https://developer.android.com/reference/java/io/FileWriter

Комментарии:

1. Спасибо, что это сработало. Но внутри файла json он выдает эту ошибку: стандарт JSON допускает только одно значение верхнего уровня:1

2. И понимаете ли вы эту ошибку? Взгляните на свой файл json с помощью обычного текстового редактора. А затем опубликуйте свой файл, когда он будет добавлен один раз. И опубликуйте еще раз, чтобы мы увидели, как это должно выглядеть.

3. ну да.. если вы хотите иметь действительный большой json, вам придется сначала прочитать файл в объект json, а затем добавить свои данные и записать их обратно в файл (тогда вам больше не нужно добавлять для файла), вам, вероятно, понадобится структура массива json в объекте json, к которому вы добавляете новые данные. Я надеюсь, что этой информации достаточно для вас, чтобы начать.