NPE 关于阅读 PDF 页数的程序

我正在尝试编写一个 Java 程序来计算 PDF 文件的页数。但是当我运行这个程序时,我得到一个错误,我不知道为什么。


这是错误:


Exception in thread "main" java.lang.NullPointerException at pdfpagecount.Pdfpagecount.main(Pdfpagecount.java:12)

这是产生错误的代码:


package pdfpagecount;


import java.io.File;

import java.io.FileInputStream;

import com.lowagie.text.pdf.PdfReader;


public class Pdfpagecount {


public static void main(String[] args) {

    File gopi = new File("C:\\Users\\Gopinath Muruti\\Desktop\\test.pdf");

    File listOfFile[] = gopi.listFiles();

    for(int i = 0; i < listOfFile.length; i++) {

        File tempFile = listOfFile[i];

        String fileName = tempFile.getName();

        System.out.println("File Name = " + fileName);

        try {

            if(fileName.toLowerCase().indexOf(".pdf") != -1) {

                PdfReader document = new PdfReader(new FileInputStream(new File("filename")));

                int noPages = document.getNumberOfPages();

                System.out.println("Number of Pages in the PDF document is = " + noPages);

            }

        }

        catch(Exception e) {

            System.out.println("Exception : " + e.getMessage());

            e.printStackTrace();

        }

    }

}

}


胡说叔叔
浏览 134回答 2
2回答

ABOUTYOU

gopi.listFiles();返回 null 因为gopi是文件,而不是目录或文件夹。所以你得到了NullPointerException。检查您的File对象是文件还是目录:File file = new File(path);boolean isDirectory = file.isDirectory(); // Check if it's a directoryboolean isFile =&nbsp; &nbsp; &nbsp; file.isFile();&nbsp; &nbsp; &nbsp; // Check if it's a regular file

RISEBY

NPE 意味着您尝试取消引用的某些对象为空 - 很可能是listOfFile[] = gopi.listFiles();(顺便说一下,这不是最好的方法。因为您已经有了文件名)我建议开始阅读有关如何在 Java 中读取文件的教程。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java