0

I have this code sample to Copy files and directories from one location to another. But this exception keep showing every time I run the program. Can anyone please help me find out the error?

Exception in thread "main" java.lang.NullPointerException

public void listFilesAndFilesSubDirectories(String directoryName) throws FileNotFoundException, IOException {
    File directory = new File(directoryName);
    //get all the files from a directory
    File[] fList = directory.listFiles();
    for (File file : fList) {
        if (file.isFile()) {
            //System.out.println(file.getAbsolutePath());
            System.out.println("File");

            File source = new File("C:\\Users\\Core i3\\Desktop\\Check me\\" + file);
            File dest = new File("C:\\Users\\Core i3\\Desktop\\New folder");
            System.out.println(source);

            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();
            }

        } else if (file.isDirectory()) {
            listFilesAndFilesSubDirectories(file.getAbsolutePath());

            System.out.println("Directory");

            File source = new File("C:\\Users\\Core i3\\Desktop\\Check me\\" + file);
            File dest = new File("C:\\Users\\Core i3\\Desktop\\New folder");

            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();
            }

        }
    }

}
  • This really doesn't help my Question. I was not talking about **What is a nullpointerexception** – user7941771 Apr 29 '17 at 20:22
  • Well, if you know what a NPE is, then presumably you know that it means you've got a null value that you're attempting to dereference. So... find the null value, and stop dereferencing it. And you've not said where the NPE occurs; but [this Javadoc](https://docs.oracle.com/javase/8/docs/api/java/io/File.html#listFiles--) might be where I'd start. – Andy Turner Apr 29 '17 at 20:47
  • BTW, `while ((length = is.read(buffer)) > 0) {` should be `while ((length = is.read(buffer)) >= 0) {`. [Read the Javadoc](https://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html#read(byte[])) for why. – Andy Turner Apr 29 '17 at 20:55

0 Answers0