Como guardar en una variable string un texto proveniente de un archivo externo .txt?

publicado por: Anonymous

Hola a todos soy muy novato en el mundo de Java y tengo un pequeño problema, actualmente quiero guardar en una variable String un texto proveniente de un archivo .txt, pero con los escasos conocimientos que tengo de Java hice algo muy rudimentario que ademas no funciona bien porque al leer la variable “texto” que es donde almaceno la informacion del .txt me muestra lo siguiente: “nullEsto es una prueba”.

(Esto es una prueba) es el contenido del txt.

Espero que algun sabio me pueda ayudar muchas gracias de antemano.

public class Acceso_fichero {

    public static void main(String[] args) {

        Leer_fichero accediendo=new Leer_fichero();
        accediendo.lee();
    }
}

class Leer_fichero{

    String texto;

    public void lee() {

        try {
            FileReader entrada=new FileReader("C:/Users/Etchko/Desktop/leeme.txt");

                int c=0;

                while(c!=-1) {
                    c=entrada.read();

                    char letra=(char)c;

                    texto+=letra;
                }

                entrada.close();

                System.out.println(texto);

        } catch (IOException e) {

            System.out.println("No se ha encontrado el archivo");
        }
    }
}

solución

Inicializa tu variable texto, porque por default cualquier Objeto no inicializado le asigna null ¿Por qué?. Porque String es un objeto ya que extiende de java.lang.Object y al no inicializarlo le asigna null. No es como los primitivos por ejemplo en el caso de los int que sino lo inicializas le asigna un 0 .De tal manera que cuando haces el primer texto+=letra; contcatena null y E. Tu código quedaría de la siguiente forma:

public class Acceso_fichero {

    public static void main(String[] args) {

        Leer_fichero accediendo=new Leer_fichero();
        accediendo.lee();
    }
}

class Leer_fichero{

    String texto="";

    public void lee() {

        try {
            FileReader entrada=new FileReader("C:/properties/leeme.txt");

                int c=0;

                while(c!=-1) {
                    c=entrada.read();

                    char letra=(char)c;

                    texto+=letra;
                }

                entrada.close();

                System.out.println(texto);

        } catch (IOException e) {

            System.out.println("No se ha encontrado el archivo");
        }
    }
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *