Como verán , no soy asiduo de la página, pero estoy nuevamente adentrándome en Java.
Les quería pedir una mano enorme sobre un ejercicio en el cual debo leer de una archivo el contenido e informar cuantas vocales y consonantes tiene.
Yo lo planteé de la siguiente forma:
1ero pido que por consola se indique el nombre del archivo a crear. Y luego creo un BufferedReader , que lo utilizo para ver si ya estaba creado el archivo.
Si estaba creado, lo informo y pido que se ingrese otro nombre de archivo a crear.
2do, una vez que se ingresó un archivo nuevo, pido que se escriba el contenido.
Pero luego tengo un error tipo Exception in thread "main" java.lang.NullPointerException
En la línea maracada en amarillo
Y por ultimo, debuggeando, veo que siempre el “bw” (bufferedWriter) siempre está en Null y nunca entra en el try que quiero, para luego hacer el conteo de las consonantes y vocales (que están como métodos estáticos en otra clase).
Les agradecería muchísimo su ayuda
Gracias
Código:
import java.util.*; import java.io.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String texto = null; boolean continuar=true; String rutaescritura=null; BufferedReader br=null; String archivo=null; do { System.out.println("Ingrese nombre de archivo a crear"); archivo=scanner.nextLine(); String ruta="g:/Laboratorio 1/"+archivo+".txt"; try { br=new BufferedReader(new FileReader(ruta)); System.out.println("El archivo existe"); continuar=true; } catch (FileNotFoundException e) { System.out.println("El archivo no estaba creado"); continuar=false; rutaescritura=ruta; } catch (IOException e) { System.out.println("No se pudo leer"); } }while (continuar); BufferedWriter bw = null; BufferedReader b = null; try { new BufferedWriter(new FileWriter(rutaescritura)); System.out.println("Ingrese lo que quiera escribir"); String escribir=null; escribir=scanner.nextLine(); bw.write(escribir); bw.write("\r\n"); } catch (FileNotFoundException e) { System.out.println("No se pudo encontrar el archivo para escribir"); } catch (IOException e) { System.out.println("No se pudo escribir"); } finally { if (bw!=null) { try { bw.close(); String linea=null; b = new BufferedReader(new FileReader(rutaescritura)); while ((linea=b.readLine())!=null) { System.out.println("Contenido del archivo: "+linea); } int cantidadVocales; int cantidadConsonantes; cantidadVocales=VocalesyConsonantes.Vocales(linea); cantidadConsonantes=VocalesyConsonantes.Consonantes(linea); System.out.println("Cantidad Vocales: "+cantidadVocales); System.out.println("Cantidad Consonantes: "+cantidadConsonantes); br.close(); } catch(IOException e) { System.out.println("No se pudo cerrar"); } }//cierre if }//cierre finally } // cierre main } //cierre Clase