En esa linea creas el BufferedWriter pero no se lo asignas a la variable
bw, por lo tanto bw sigue apuntando a null.
Y luego haces:
Aquí es donde se produce el error.
Por otra parte el ejercicio se trata de leer los caracteres de un fichero, para que necesitas crear un fichero nuevo? es parte del ejercicio tambien? porque si no es así no se para que creas o quieres creas un fichero nuevo.
Fijate también que el do/while está mal implementado. Si introduces un fichero que exista pones la variable continuar a true, por lo tanto el bucle continua y se solicita otro nombre de fichero.
Un saludo.