如何将每个数据保存在 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() 将数据保存在其中

Flask - 如何将每个键的JSON数据保存到它的列[重复]

如何将数据保存在json文件中?

如何在安卓ndk工程中引入jsoncpp