Java 将json数据写入和读取到内部存储器
我从php收到了一个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",
[
{
"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
写入文件@mortezasoeimaniusjsonArrayObject.toString()
来获取保存在fileuse上下文中的字符串。openFileOutput(“myJson.txt”,context.MODE\u PRIVATE)和InputStream InputStream=context.openFileInput(“myJson.txt”):)我不使用上下文,上下文变化很大。您不能在以前的代码中使用path,请自己测试它。