elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema programa simple: NULL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema programa simple: NULL  (Leído 2,275 veces)
salvagym

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema programa simple: NULL
« en: 24 Febrero 2013, 12:58 pm »

Hola soy nuevo en esto de la programación y estoy estudiando ingenieria informatica, me ha mandado hacer un ejercicio:  dado un fichero de texto de entrada.txt, generar tres ficheros de salida llamados salida1 salida2 salida3 de forma que en el primer fichero alojaremos las palabras que solo contengan consonantes en el segundo las palabras que tengas solo vocales en el tercero las plabaras k tengas palabras vocales y consonantes. tambien que se pueda ejecutar por linea de comando. MI PROBLEMA: es que al ejecutar el resultado es: run:
ERROR: null
java.lang.NullPointerException
   at ficheros1.Fichero1.main(Fichero1.java:36)
BUILD SUCCESSFUL (total time: 0 seconds)

package ficheros1;

import java.io.*;

public class Fichero1 {

    public static void main(String[] args)throws Exception {
       
        FileReader fr = null;BufferedReader br = null;
        FileWriter fw1 = null;BufferedWriter bw1 = null;PrintWriter pw1 = null;//consonantes
        FileWriter fw2 = null;BufferedWriter bw2 = null;PrintWriter pw2 = null;//vocales
        FileWriter fw3 = null;BufferedWriter bw3 = null;PrintWriter pw3 = null;//Híbrido
        String caracter;
       
        try{
            fr=new FileReader("C:/PruebasNetbeans/entrada.txt");
            br=new BufferedReader(fr);
            fw1=new FileWriter ("C:/PruebasNetbeans/salida1.txt");
            fw2=new FileWriter ("C:/PruebasNetbeans/salida2.txt");
            fw3=new FileWriter ("C:/PruebasNetbeans/salida3.txt");
            pw1=new PrintWriter (fw1);
            pw2=new PrintWriter (fw2);
            pw3=new PrintWriter (fw3);
           
            caracter=br.readLine();
            Palabra pal = null;
            while(caracter != null){
               
                if (pal.soloVocales(caracter)){
                    pw2.print(caracter);
                }
                if (pal.soloConsonantes(caracter)){
                    pw1.print(caracter);
                }
                else if(pal.soloConsonantes(caracter)&&pal.soloVocales(caracter)){
                    pw3.print(caracter);
                }
            }
        }catch (Exception e) {
            System.out.println("ERROR: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
GRACIAS DE ANTEMANO! :D :rolleyes:


En línea

BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: Problema programa simple: NULL
« Respuesta #1 en: 24 Febrero 2013, 16:15 pm »

Código
  1. caracter=br.readLine();
  2.            Palabra pal = null;
  3.            while(caracter != null){
  4.  
  5.                if (pal.soloVocales(caracter)){
  6.                    pw2.print(caracter);
  7.                }
  8.                if (pal.soloConsonantes(caracter)){
  9.                    pw1.print(caracter);
  10.                }
  11.                else if(pal.soloConsonantes(caracter)&&pal.soloVocales(caracter)){
  12.                    pw3.print(caracter);
  13.                }
  14.            }

Fíjate que declararas pal pero no creas una instancia y luego tratas a acceder a un método de instancia...

Código
  1. caracter=br.readLine();
  2.            Palabra pal = new Palabra();
  3.            while(caracter != null){
  4.  
  5.                if (pal.soloVocales(caracter)){
  6.                    pw2.print(caracter);
  7.                }
  8.                if (pal.soloConsonantes(caracter)){
  9.                    pw1.print(caracter);
  10.                }
  11.                else if(pal.soloConsonantes(caracter)&&pal.soloVocales(caracter)){
  12.                    pw3.print(caracter);
  13.                }
  14.            }

PD: con readLine lees hasta el '\n' no char a char.


« Última modificación: 24 Febrero 2013, 16:20 pm por BatchianoISpyxolo » En línea

Puede que desees aprender a programar desde 0: www.espascal.es
salvagym

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problema programa simple: NULL
« Respuesta #2 en: 24 Febrero 2013, 20:52 pm »

Tienes toda la razon, se nota que me queda mucho por aprender.
Acabo de probar el programa con la modificación pero ahora cuando ejecuto se me queda el run ejecutando sin dar ninguna señal ni siquiera que ha acabado. Lo paro, miro los archivos de salida y no hay nada PD: en el archivo de entrada hay escrito 'aaaeio' por lo que deberia copiarme la palabra en el archivo 2 de salida.

Adjunto lo que tengo en otra clase Palabra

public  boolean soloVocales(String caracter)throws Exception{
        if ((("a".contains(caracter))||("e".contains(caracter))||("i".contains(caracter))||
             ("o".contains(caracter))||("u".contains(caracter))||("A".contains(caracter))||
             ("E".contains(caracter))||("I".contains(caracter))||("O".contains(caracter))||
             ("U".contains(caracter)))){return true;
        }else{return false;}
       
    }
   
    public  boolean soloConsonantes(String caracter){
         if((!("a".equals(caracter))||!("e".equals(caracter))||!("i".equals(caracter))||
             !("o".equals(caracter))||!("u".equals(caracter))||!("A".equals(caracter))||
             !("E".equals(caracter))||!("I".equals(caracter))||!("O".equals(caracter))||
             !("U".equals(caracter)))){return true;
             
         }
        return false;
    }

son los metodos para ver los caracteres del string. Tampoco se si estan bien :S

Gracias por la ayuda BatchianoISpyxolo  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines