如何将每个数据保存在 JSON 文件中?安卓工作室
Posted
技术标签:
【中文标题】如何将每个数据保存在 JSON 文件中?安卓工作室【英文标题】:How can I save every data in JSON file? android studio 【发布时间】:2021-12-03 12:40:45 【问题描述】:我正在使用安卓工作室。代码java。我通过在设备的内部存储上创建一个文件,将 edittext 输入的数据保存为 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();
);
【问题讨论】:
尝试新的 FileWriter(file, "wa");追加数据。或者,如果 FileWriter 不能追加而只能追加 FileOutputStream,则不要使用它。I want it to save every data I entered from the edittext
你想将所有数据附加到同一个文件中。
@blackapps 谢谢你的回答。 “FileWriter”和“FileOutputStream”有什么区别?
作家写作。一条溪流。你无法比较它们。
【参考方案1】:
更改FileWriter fileWriter = new FileWriter(file);
附加到FileWriter fileWriter = new FileWriter(file, true);
。
https://developer.android.com/reference/java/io/FileWriter
【讨论】:
感谢您的成功。但是在 json 文件中它给出了这个错误: JSON 标准只允许一个***值:1 你理解那个错误吗?使用纯文本编辑器查看您的 .json 文件。然后在附加一次时发布您的文件。再发一次,让我们看看它应该是什么样子。 好吧..如果你想拥有一个有效的大json,你必须先将文件读入一个json对象,然后附加你的数据并将其写回文件(然后你不要'文件不再需要追加),您可能希望在追加新数据的 json 对象中有一个 json 数组结构。我希望这些信息足以让您开始。以上是关于如何将每个数据保存在 JSON 文件中?安卓工作室的主要内容,如果未能解决你的问题,请参考以下文章
如何将 json 输出保存在 String 对象中。重复数据写入所有拆分的文件中?
使用为每个用户生成的唯一密钥限制 Firebase 数据库规则。 (安卓工作室)
将数组保存到 JSON 文件,然后使用 Array.push() 将数据保存在其中