2016-11-08 147 views
0

每一个更大的内容和想知道如何从内部存储器输出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" 
    } 
] 
+1

试试这个:http://stackoverflow.com/questions/28646757/write-and-read-a-json-data-to-internal-storage-android –

回答

0

读取字符串并将其转换为以下方法JsonObjectJsonArray

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; 
} 
1

添加您的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从文件