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