Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从内存读取Pdf文件时出错?_Java_Android_File_Pdf - Fatal编程技术网

Java 从内存读取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{

我正在尝试从设备的内存中读取pdf文件我的代码如下:

                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"