从内部存储器中读取JSON文件的内容
问题描述:
每一个更大的内容和想知道如何从内部存储器输出json文件的内容。以下是目前正在工作的内容。从内部存储器中读取JSON文件的内容
String filename = "names.json";
final File file = new File(Environment.getDataDirectory(), filename);
Log.d(TAG, String.valueOf(file));
日志显示为:/data/names.json
names.json
[
"names",
{
"name": "John Doe"
}
]
答
读取字符串并将其转换为以下方法JsonObject
或JsonArray
String jsongString = readFromFile();
JSONArray jarray = new JSONArray(str);
用来读取内部存储的文件数据,并返回作为String
。
private String readFromFile() {
String ret = "";
try {
InputStream inputStream = openFileInput("names.json");
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;
}
答
添加您的JSON文件RES /生/ generated.json
,并在您访问活动像这样的json数据
InputStream is = getResources().openRawResource(R.raw.generated);
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try {
Reader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
int n;
try {
while ((n = reader.read(buffer)) != -1) {
writer.write(buffer, 0, n);
}
} catch (IOException e) {
e.printStackTrace();
}
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
String jsonString = writer.toString();
Log.d("jsonString",jsonString);
0从文件
试试这个:http://stackoverflow.com/questions/28646757/write-and-read-a-json-data-to-internal-storage-android –