java - 将 json 数据写入和读取到内部存储 android

标签 java android arrays json file

我有一个从 php 接收到的 json 数组

[  
   {  
      "name":"Daniel Bryan",
      "img":"pictures\/smallest\/dierdrepic.jpg",
      "username":"@dbryan",
      "user_id":"4"
   },
   {  
      "name":"Devil Hacker",
      "img":"pictures\/smallest\/belitapic.jpg",
      "username":"@dvHack",
      "user_id":"1"
   }
]
  • 我想要的是将此数据写入file_name.anyextension 中 我的应用程序数据文件夹或任何安全的地方。
  • 同时从 file_name.anyextension 中读取数据并将其转换为 可以进一步编辑的有效 json 数组

任何人都可以告诉我如何才能做到这一点吗?

最佳答案

private void writeToFile(String data) {
    try {
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput("config.txt", Context.MODE_PRIVATE));
        outputStreamWriter.write(data);
        outputStreamWriter.close();
    }
    catch (IOException e) {
        Log.e("Exception", "File write failed: " + e.toString());
    } 
}


private String readFromFile() {

    String ret = "";

    try {
        InputStream inputStream = context.openFileInput("config.txt");

        if ( inputStream != null ) {
            InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String receiveString = "";
            StringBuilder stringBuilder = new StringBuilder();

            while ( (receiveString = bufferedReader.readLine()) != null ) {
                stringBuilder.append(receiveString);
            }

            inputStream.close();
            ret = stringBuilder.toString();
        }
    }
    catch (FileNotFoundException e) {
        Log.e("login activity", "File not found: " + e.toString());
    } catch (IOException e) {
        Log.e("login activity", "Can not read file: " + e.toString());
    }

    return ret;
}

当从文件中读取字符串时,将其转换为 JsonObject 或 JsonArray

JSONArray jarray = new JSONArray(str);

关于java - 将 json 数据写入和读取到内部存储 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28646757/

相关文章:

android - LiveData.addSource onChanged 事件不调用 Android

arrays - 生成一个矩阵,其中包含从 n 个向量中获取的元素的所有组合

c# - 关于 catch block 中 catch 语句顺序的问题 - 特定于编译器或语言标准?

java - RED5 和 RTSP 流媒体

android - 为什么我的通知没有出现

python - 需要为每个字符串创建一个数组的数组

javascript - 如何创建使用 Javascript 数组填充 HTML 表格的循环

java - 无法在 struts2 中获取 JSON Url 参数

java - 如何增加 Hadoop 中的 Java 堆大小

android - Android 上的 Meteor.loginWithGoogle 错误 10