Problema con buffer

Iniciado por Debci, 18 Agosto 2009, 21:56 PM

0 Miembros y 2 Visitantes están viendo este tema.

Debci

Hola amigo nos e loq ue ocurre, abro un archivo y leo su contenido y lo guardo en un buffer, pero ald evolverme su contenido me dice que es null :s
AQui el metodo:
Código (java) [Seleccionar]

public void getContenido(){

        try {
            br = new BufferedReader(new FileReader("//home//debci//Escritorio//debci.cfg"));
            try {
                directorioEmoticones = br.readLine();
            } catch (IOException ex) {
                Logger.getLogger(LecturaArchivosView.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(LecturaArchivosView.class.getName()).log(Level.SEVERE, null, ex);
        }

    System.out.println("El directorio marcado es: " + directorioEmoticones);
}

La salida del programa es la siguiente:

Hola ahora veras si ha salido bien: null

y me tendria que devolver el mensaje qu ehay dentro del texto, la cosa es que no lo hace y el archivo existe, y tiene texto.

saludos

-Ramc-

Y donde estás imprimiendo eso de: "Hola ahora veras si ha salido bien: null"

porque yo no lo veo en el código que pusiste.

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

JmpNull

#2
Pregunta: la variable directorioEmoticones, de que tipo es? Porque no la veo declarada por ningún lado. En todo caso, prueba a poner o crear fuera de la comprobación 'try' la declaración del tipo:

Código (java) [Seleccionar]

public void getContenido(){
       String directorioEmoticones = null;
       try {
           br = new BufferedReader(new FileReader("//home//debci//Escritorio//debci.cfg"));
           try {
               directorioEmoticones = br.readLine();
           } catch (IOException ex) {
               Logger.getLogger(LecturaArchivosView.class.getName()).log(Level.SEVERE, null, ex);
           }
       } catch (FileNotFoundException ex) {
           Logger.getLogger(LecturaArchivosView.class.getName()).log(Level.SEVERE, null, ex);
       }

   System.out.println("El directorio marcado es: " + directorioEmoticones);
}


No he probado a compilar, pero puede ser la solución al problema :)

Quizás te pueda servir esta clase de un programa mio que accede a un fichero para leer datos:

Código (java) [Seleccionar]

/*
*  Copyright (C) 2009 Juan Carlos Ortega <juancarloslinux@gmail.com>
*/
package biorritmos;

import java.io.*;

/**
* Clase Documentacion
*
* Esta clase se encarga de informar al usuario informacion acerca del programa.
*
* @author juancarlos <JmpNull>
*/
public class Documentacion {

    // Atributos
    private static final String ruta = "src/biorritmos/doc.txt";

    // Constructor
    public Documentacion() {

        File archivo = null;
        FileReader fr = null;
        BufferedReader br = null;

        try {
            // Apertura del fichero y creacion de BufferedReader para poder
            // hacer una lectura comoda (disponer del metodo readLine()).
            archivo = new File(ruta);
            fr = new FileReader(archivo);
            br = new BufferedReader(fr);

            // Lectura del fichero
            String linea;
            while ((linea = br.readLine()) != null) {
                // Lectura de una sola linea
                System.out.println(linea);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // En el finally cerramos el fichero, para asegurarnos
            // que se cierra tanto si todo va bien como si salta
            // una excepcion.
            try {
                if (null != fr) {
                    fr.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }   
}
En el mundo hay 10 tipos de personas...Los que leen binario y los que no.

Debci

Cita de: -Ramc- en 19 Agosto 2009, 00:28 AM
Y donde estás imprimiendo eso de: "Hola ahora veras si ha salido bien: null"

porque yo no lo veo en el código que pusiste.
miren las declaraciones del buffer y los otros objetos son las siguientes:
Código (java) [Seleccionar]

public static void main(String[] args) {
        launch(LecturaArchivosApp.class, args);
        System.out.println("Hola ahora veras si ha salido bien: "  + directorioEmoticones);

    }
    public class lectura {

        public static BufferedReader br;
        public static String directorioEmoticones;

        public void getRuta(){

        try {
            br = new BufferedReader(new FileReader("//home//debci//Escritorio//debci.cfg"));
            try {
                directorioEmoticones = br.readLine();
            } catch (IOException ex) {
                Logger.getLogger(LecturaArchivosView.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(LecturaArchivosView.class.getName()).log(Level.SEVERE, null, ex);
        }

    System.out.println("El directorio marcado es: " + directorioEmoticones);
}

        }
    }


En el fragmento del codigo se observa la decalaración de los objetos asi como las clases y el método main de la clase principal (aqui no visible) elc ual se ejecuta al iniciar el programa dando el println ahi invocado usando la variable recojida del metodo getruta.

Saludos

-Ramc-

Ok, supongo que el método launch ejecuta la clase  LecturaArchivosApp.class y le envía los argumentos, cosa que supongo, porque no veo tampoco el método launch, no se qué es la clase LecturaArchivosApp.class, pero, igualmente directorioEmoticones es parte de la clase lectura así que deberías usarlo como lectura.directorioEmoticones, igualmente no tendrá nada, porque no ejecutas getRuta();.

Saludos.

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

Debci

Cita de: -Ramc- en 19 Agosto 2009, 18:25 PM
Ok, supongo que el método launch ejecuta la clase  LecturaArchivosApp.class y le envía los argumentos, cosa que supongo, porque no veo tampoco el método launch, no se qué es la clase LecturaArchivosApp.class, pero, igualmente directorioEmoticones es parte de la clase lectura así que deberías usarlo como lectura.directorioEmoticones, igualmente no tendrá nada, porque no ejecutas getRuta();.

Saludos.
solucionado probelam de un metodo.

saludos