Java 将json数据写入和读取到内部存储器

Java 将json数据写入和读取到内部存储器,java,android,arrays,json,file,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",

我从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"
   }
]
  • 我想要的是将此数据写入
    文件\u name.anyextension
    中 我的应用程序数据文件夹或任何安全的地方
  • 同时从
    文件名.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);

Morteza Soleimani的更正答案如下:

public static String readFromFile(String path) {
    String ret = "";
    try {
        InputStream inputStream = new FileInputStream(new File(path));

        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("FileToJson", "File not found: " + e.toString());
    } catch (IOException e) {
        Log.e("FileToJson", "Can not read file: " + e.toString());
    }
    return ret;
}

我假设您已经在谷歌上搜索了“java读/写数据到文件”,那么到目前为止您尝试了什么呢?
PrintWriter writer=newprintwriter(“FileName.txt”,“UTF-8”);writer.println(myjsonstring);writer.close()
@Beresfordt你能不能把你的努力放在问题的主体上,并解释一下为什么不是working@beresfordt我有一个
json数组
如何将其写入文件?它唯一可以写入的
string
如何将json数组转换为字符串并打印到sysout?
方法openFileInput(string)对于类型是未定义的
&
方法openFileOutput(string,int)对于类型是未定义的
如果类不是从活动扩展的,则使用“openFileInput()”方法应该是这样的:context.openFileInput()你得到了修复,尽管我有一个
JSONArray
而不是
String
写入文件@mortezasoeimanius
jsonArrayObject.toString()
来获取保存在fileuse上下文中的字符串。openFileOutput(“myJson.txt”,context.MODE\u PRIVATE)和InputStream InputStream=context.openFileInput(“myJson.txt”):)我不使用上下文,上下文变化很大。您不能在以前的代码中使用path,请自己测试它。