#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);
для добавления.
Комментарии:
1. Спасибо, что это сработало. Но внутри файла json он выдает эту ошибку: стандарт JSON допускает только одно значение верхнего уровня:1
2. И понимаете ли вы эту ошибку? Взгляните на свой файл json с помощью обычного текстового редактора. А затем опубликуйте свой файл, когда он будет добавлен один раз. И опубликуйте еще раз, чтобы мы увидели, как это должно выглядеть.
3. ну да.. если вы хотите иметь действительный большой json, вам придется сначала прочитать файл в объект json, а затем добавить свои данные и записать их обратно в файл (тогда вам больше не нужно добавлять для файла), вам, вероятно, понадобится структура массива json в объекте json, к которому вы добавляете новые данные. Я надеюсь, что этой информации достаточно для вас, чтобы начать.