Java 从内存读取Pdf文件时出错?
我正在尝试从设备的内存中读取pdf文件我的代码如下:Java 从内存读取Pdf文件时出错?,java,android,file,pdf,Java,Android,File,Pdf,我正在尝试从设备的内存中读取pdf文件我的代码如下: File pdfFile; pdfFile=new File("data/data/com.myapp.main/app_c"+md+"/c"+md+".pdf"); if(pdfFile.exists()) { try{
File pdfFile;
pdfFile=new File("data/data/com.myapp.main/app_c"+md+"/c"+md+".pdf");
if(pdfFile.exists())
{
try{
FileOutputStream fileOutput = openFileOutput(pdfFile.toString(), Context.MODE_WORLD_READABLE);
}
catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
Uri path = Uri.fromFile(pdfFile);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(path, "application/pdf");
pdfIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try
{
startActivity(pdfIntent);
}
catch(ActivityNotFoundException e)
{
Toast.makeText(ChTable.this, "No Application available to view pdf", Toast.LENGTH_LONG).show();
}
但Pdf阅读器显示错误-文件不受支持或文件未找到。但我已检查该文件是否在该位置。我还更改了该文件的权限,但结果仍然相同。有人能帮我发现并解决我的问题吗?你可以使用PDFBox库从pdf中读取数据- 这条路对吗 我猜路径应该如下所示
data/data/com/myapp/main/app_c"+md+"/c"+md+".pdf"
您应该使用其中一个API来获取应用程序的文件目录,而不是假设路径是什么 然而,您的实际问题很可能是,您在那里创建的任何文件都可能是所属应用程序的私有文件,因此PDF reader应用程序没有访问该文件的权限 解决方案是将文件模式更改为世界可读,或者更常见的做法是将文件放在外部存储器(即“SD卡”)而不是内部存储器上,因为(迄今为止)没有权限概念。尽管值得记住的是,设备不能保证有外部存储器,也不能保证在任何给定的时间点(即使存在)都可以访问
data/data/com/myapp/main/app_c"+md+"/c"+md+".pdf"