2016-06-18 4 views
0

안녕하세요 저는 자산 폴더가있는 Android 애플리케이션을 개발 중입니다. 내부 자산 폴더에는 abc.pdf를 넣었습니다. 하지만 그 파일에 액세스하려고하면 파일이 존재하지 않는다는 것을 보여줍니다. 나는 그것을 다음과 같이 시도했다.자산 파일에 액세스 할 수 없습니다 android

File pdfFile = new File("file:///android_asset/"+ "abc.pdf"); 
    if(!pdfFile.exists()){ 
     Toast.makeText(this, "not there", Toast.LENGTH_SHORT).show(); 
     return; 
    } 
    else 
    { 
     Toast.makeText(this, "it's there", Toast.LENGTH_SHORT).show(); 
    } 

뭐가 잘못 되었나요? 도움이 필요해. 고맙습니다.

답변

2

자산은 개발 컴퓨터의 파일 일뿐입니다. 장치의 파일이 아닙니다. File을 사용하여 참조 할 수 없습니다.

AssetManageropen()을 사용하면 저작물에 InputStream이 표시됩니다. 어떤 Context 또는 Resources 개체에 getAssets()으로 전화하여 AssetManager을 얻을 수 있습니다. 예를 들어

0

, 자산 폴더에서로드 JSON 파일 :

private String loadJSONFromAsset(Context context) { 
    String json; 
    try { 
     AssetManager assetManager = context.getAssets(); 
     InputStream inputStream = assetManager.open("model.json"); 
     StringWriter writer = new StringWriter(); 
     IOUtils.copy(inputStream, writer, "UTF-8"); 
     json = writer.toString(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     return null; 
    } 
    return json; 
} 
관련 문제