2016-06-18 9 views
0

Hallo ich entwickle Android-Anwendung, in der ich Assets Ordner habe. Inside Assets Ordner habe ich abc.pdf gestellt. Aber wenn ich versuchte, auf diese Datei zuzugreifen, zeigt es mir Datei existiert nicht. Ich habe es auf folgende Weise versucht.Zugriff auf Assets Datei nicht möglich 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(); 
    } 

Mache ich etwas falsch? Hilfe benötigen. Vielen Dank.

Antwort

2

Ein Asset ist nur eine Datei auf Ihrem Entwicklungscomputer. Es ist keine Datei auf dem Gerät. Sie können es nicht mit File referenzieren.

Verwenden Sie AssetManager und open(), um eine InputStream auf dem Asset zu erhalten. Sie können eine AssetManager erhalten, indem Sie getAssets() auf einem beliebigen Context oder Resources Objekt aufrufen.

0

Zum Beispiel Last JSON-Datei von Assets Ordner:

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