Android 从资产文件夹中读取 pdf 文件
Android read pdf file from asset folder
我尝试读取 assets 文件夹中的 pdf 文件存储。我看到这个解决方案:
Read a pdf file from assets folder
但是就像评论说它不再工作了,找不到文件,是否有另一种直接读取 pdf 文件的解决方案,而无需在外部存储中复制 pdf?
而且我不想使用 PdfRenderer 我的最小 API 是 17
也许这对某些人有帮助,所以我 post 我的回答:
private void openPdf(String pdfName){
AssetManager assetManager = getAssets();
InputStream in = null;
OutputStream out = null;
File file = new File(getFilesDir(), pdfName);
try
{
in = assetManager.open(pdfName);
out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE);
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1)
{
out.write(buffer, 0, read);
}
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.parse("file://" + getFilesDir() + "/"+pdfName),
"application/pdf");
startActivity(intent);
}
pdf 文件存储在 assets 文件夹中
我尝试读取 assets 文件夹中的 pdf 文件存储。我看到这个解决方案: Read a pdf file from assets folder
但是就像评论说它不再工作了,找不到文件,是否有另一种直接读取 pdf 文件的解决方案,而无需在外部存储中复制 pdf? 而且我不想使用 PdfRenderer 我的最小 API 是 17
也许这对某些人有帮助,所以我 post 我的回答:
private void openPdf(String pdfName){
AssetManager assetManager = getAssets();
InputStream in = null;
OutputStream out = null;
File file = new File(getFilesDir(), pdfName);
try
{
in = assetManager.open(pdfName);
out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE);
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1)
{
out.write(buffer, 0, read);
}
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.parse("file://" + getFilesDir() + "/"+pdfName),
"application/pdf");
startActivity(intent);
}
pdf 文件存储在 assets 文件夹中