2016-06-18 4 views
0

こんにちは私は資産フォルダを持っているアンドロイドアプリケーションを開発しています。私は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; 
} 
関連する問題