Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Thryks en 14 Marzo 2014, 11:45 am



Título: Problema lectura fichero
Publicado por: Thryks en 14 Marzo 2014, 11:45 am
Buenas a todos, verán, estoy haciendo un programita en java que me permita leer un fichero para después obtener cada cadena de texto o números como un objeto.
Ejemplo:
456 789 123 (ficherox.txt) Me gustaría obtener como variables de tipo entero 456 por un lado, por otro 789 y por otro 123, y reunirlos todos como vectores, mi problema es el siguiente.
He creado un método para leer un fichero, lo he invocado pero me dice "null", como si no existiese el fichero y de echo existe. Os paso el código para que podais decirme en que me he equivocado. Aceptaré todas las críticas por supuesto, estoy aquí para aprender a programar.
También me gustaría si alguien puede decirme no solo porque sale "null" sino como podría almacenar dichos datos o cadenas de texto, tengo una ligera idea que seria creando un string y después pasarlo a entero con Integer.parseInt, pero si alguien pudiese decirme una forma más eficiente si es que la mia no lo es o como puedo almacenarlo después en un vector para poder trabajar con él. Muchas gracias de antemano.


Mis ficheros son:
LecturaFicheros.java
Código:
package lecturaficheros;
import java.io.*;
public class Lecturaficheros {

 public String leer(String nombre)
 {
    File f;
    FileReader lectorLecturaficheros;
     try{
         f = new File(nombre);
         lectorLecturaficheros = new FileReader(f);
         BufferedReader br = new BufferedReader(lectorLecturaficheros);
         String prueba="";
         String aux="";
         while(true)
         {
             aux=br.readLine();
             if(aux!=null)
                 prueba=prueba+aux+"\n";
             else
                 break;
     }
     }
     catch(IOException e){
         System.out.println("Error:" + e.getMessage());
     }
     return null;
 }
}

Main.java
Código:
package lecturaficheros;
import java.io.*;
public class Main {
    public static void main (String[] args){
       Lecturaficheros primera = new Lecturaficheros();
       String prueba = primera.leer("archivo.txt");
       System.out.println(prueba);
    }
}


Título: Re: Problema lectura fichero
Publicado por: Chuidiang en 14 Marzo 2014, 16:34 pm
¿Qué quiere decir "me dice null"? ¿Retorna null? ¿Saca null por pantalla? ¿NullPointerException?

Si no puede abrir el fichero, ¿Qué saca este mensaje System.out.println("Error:" + e.getMessage()); ?

Cuando consigas leer una linea en un string, el método split() te ayuda a separar los números

Código:
// Pasa un espacio como parámetro, suponiendo que sea un espacio lo que hay
// entre los numeros.
String [] numeros = linea.split(" ");

Una vez tengas separados los números en un array de String, lo recorres y con

Código:
int = valor Integer.parseInt(numeros[i]);

Deberías ir teniendo los números, vete metiéndolos en el Vector.

Se bueno.



Título: Re: Problema lectura fichero
Publicado por: 1mpuls0 en 14 Marzo 2014, 16:48 pm
Citar
public String leer(String nombre)
 {
    File f;
    FileReader lectorLecturaficheros;
     try{
         f = new File(nombre);
         lectorLecturaficheros = new FileReader(f);
         BufferedReader br = new BufferedReader(lectorLecturaficheros);
         String prueba="";
         String aux="";
         while(true)
         {
             aux=br.readLine();
             if(aux!=null)
                 prueba=prueba+aux+"\n";
             else
                 break;
     }
     }
     catch(IOException e){
         System.out.println("Error:" + e.getMessage());
     }
     return null;
 }

Te retorna null porque así se lo indicas.