2014-11-15 2 views
0

요점은 다음입니다. 로그인이 끝나면 서버에서 json 파일을 다운로드하기 만하면됩니다.다른 활동의 JSON 파일 InternalStorage 열기 (Android)

JSONObject json2 = jsonParser2.getJSONFromUrl(URL); 
//3 
try { 
    FileOutputStream fos = openFileOutput("news.json", Context.MODE_PRIVATE); 
    fos.write(json2.toString().getBytes()); 
    fos.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

난 그냥 /data/data/myapp/files/news.json에서 확인하고 파일이 올바른 데이터로 생성됩니다 내가 활동 (자) Login.class에서 다음 코드를 저장합니다.

내 문제는 다음 활동 (다른 활동)입니다. 이 중 하나는 파일을 읽고 listview에 넣고 싶지만 안드로이드 에뮬레이터/장치는 파일에 액세스하려고 할 때 충돌합니다. (내 코드입니다) :

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_noticias); 
    try { 
     JSONObject obj = new JSONObject(loadJSONFromAsset()); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 


public String loadJSONFromAsset() { 
    String json = null; 
    try { 
     InputStream is = getAssets().open("news.json"); 
     int size = is.available(); 
     byte[] buffer = new byte[size]; 
     is.read(buffer); 
     is.close(); 
     json = new String(buffer, "UTF-8"); 

    } catch (IOException ex) { 
     ex.printStackTrace(); 
     return null; 
    } 
    return json; 
} 

제발, 누군가가이 문제를 도와 줄 수 있습니까 ?? 내가 어떻게 고칠 수 또는 누군가가 파일을 읽을 다른 방법을 알고 ??

시간 내 주셔서 감사합니다.

답변

0

file system (저장 매체 인 internal 또는 external 저장 미디어)에서 파일을 읽어야합니다.

애셋은 앱에 포함 된 파일 (예 : res/raw 또는 유사한 폴더)에 사용되며 앱을 빌드합니다. 앱의 샌드 박스 메모리 공간에 파일을 저장 한 경우

InputStream is = getAssets().open("news.json"); 

하지 마십시오. 적절한 File 클래스 루틴을 사용하십시오.

+0

그냥 줄 바꾸기 -> FileInputStream is = openFileInput ("noticias.json"); 고맙습니다. ^^ – Ray

+0

당신은 오신 것을 환영합니다. 너는 뉴스를 말하는거야 .Json or noticias. Json? –