Android アプリケーションのアセット フォルダーから PDF ファイルを読み取るには、いくつかの特定の手順が必要です。
提供されたコードでは、「abc.pdf」ファイルに指定されたファイル パスで問題が発生します。使用されているパス「android.resource://com.project.data Structure/assets/abc.pdf」が正しくありません。
これを解決するには、次の手順に従ってください:
必要な変更を加えた更新されたコードは次のとおりです。
<code class="java">public class SampleActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); CopyReadAssets(); } private void CopyReadAssets() { AssetManager assetManager = getAssets(); InputStream in = null; OutputStream out = null; File file = new File(getFilesDir(), "abc.pdf"); try { in = assetManager.open("abc.pdf"); out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE); copyFile(in, out); in.close(); in = null; out.flush(); out.close(); out = null; } catch (Exception e) { Log.e("tag", e.getMessage()); } Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType( Uri.fromFile(file), "application/pdf"); startActivity(intent); } private void copyFile(InputStream in, OutputStream out) throws IOException { byte[] buffer = new byte[1024]; int read; while ((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } } }</code>
この更新されたコードは、「abc.pdf」を正しくコピーします。ファイルをアプリケーションの内部ストレージに保存し、正しいファイル パスを使用してサードパーティの PDF ビューアで PDF を開きます。
以上がAndroid アプリケーションのアセットフォルダーから PDF ファイルを正しく読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。