Foros del Web » Programación para mayores de 30 ;) » Java »

Calcular consonantes y vocales de archivo ???

Estas en el tema de Calcular consonantes y vocales de archivo ??? en el foro de Java en Foros del Web. Hola, como están ?. Como verán , no soy asiduo de la página, pero estoy nuevamente adentrándome en Java. Les quería pedir una mano enorme ...
  #1 (permalink)  
Antiguo 01/06/2014, 16:31
 
Fecha de Ingreso: octubre-2006
Mensajes: 6
Antigüedad: 17 años, 6 meses
Puntos: 0
Calcular consonantes y vocales de archivo ???

Hola, como están ?.
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
  #2 (permalink)  
Antiguo 02/06/2014, 00:15
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Calcular consonantes y vocales de archivo ???

Código Java:
Ver original
  1. new BufferedWriter(new FileWriter(rutaescritura));

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:

Código Java:
Ver original
  1. bw.write(escribir);

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.

Etiquetas: calcular, clase, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:01.