我如何将PDF复制到内部存储中? -Android studio

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何将PDF复制到内部存储中? -Android studio相关的知识,希望对你有一定的参考价值。

我想将pdf从下载文件夹复制到我的应用程序(内部存储)中。问题在于该方法抛出NullPointerExeption。

    File source = new File("/storage/emulated/0/Download/test1.pdf");
    File dest = new File("/data/user/0/com.example.meinuniverwalter/files/Gson");

 try

     copyFileUsingStream(source,dest);


     catch(IOException e)
     e.printStackTrace();
     

    private static void copyFileUsingStream(File source, File dest) throws IOException 
    InputStream is = null;
    OutputStream os = null;
    try 
        is = new FileInputStream(source);
        os = new FileOutputStream(dest);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = is.read(buffer)) > 0) 
            os.write(buffer, 0, length);
        
     finally 
        is.close();
        os.close();
    


E/androidRuntime: FATAL EXCEPTION: main
Process: com.example.meinuniverwalter, PID: 28195
java.lang.RuntimeException: Unable to start activity ComponentInfocom.example.meinuniverwalter/com.example.meinuniverwalter.MainActivity: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.io.InputStream.close()' on a null object reference
答案

NullPointerException来自您的finally块。要获取有关错误的更多信息,请尝试捕获错误并将其记录下来。对我来说,似乎找不到文件,因此InputStream为null。您可以访问下载目录,例如:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS); 

并且要访问此目录中的单个文件,请使用File.list()或File.listFiles()。另外,请确保您对清单文件具有正确的权限。

以上是关于我如何将PDF复制到内部存储中? -Android studio的主要内容,如果未能解决你的问题,请参考以下文章

如何按文件类型递归查找文件并将它们复制到目录?

如何从内部存储中选择文档和图像文件并上传到服务器?

归档项目后如何访问添加的 pdf 文件以将其复制到用户文档文件夹中?

memcpy 的内部实现是如何工作的?

Flutter:如何将pdf文件上传到firebase存储?

PDF如何复制页面,简单的操作方法