Llenar un arreglo en java con un archivo externo

Tengo este problemita... Necesito llenar un array con datos tomados desde un archivo externo txt...

1 respuesta

Respuesta
1
Antes de ayudarte necesito saber si el array lo que almacena es línea por línea. A ver si me quedó claro tu problema..
Gracias rigo123, no entiendo muy bien cuando dice que si el array es linea por linea, considero que si. Es un arreglo unidimensional de objetos de una clase creada(cuenta), que contiene tres elementos, uno de tipo int, otro string y otro double. El arreglo contiene por ejemplo cinco objetos de la clase cuenta. El archivo plano" .txt" muestra los datos tokenizados(_) y un objeto por linea. ej: 123_Maria Perez_2300.00\n.
German,
mil gracias
Por si revisas esto en 5 min aprox. subo la solución.
Aquí está el código. Si tienes dudas en una parte o en todo xd me preguntas y te respondo lo más rápido que pueda.
En este programa en vez de un array convencional usé un ArrayList.
import java.io.*;
import java.util.*;
public class hola2 {
    public static void main (String args[] ) {
        ArrayList<Cuenta> arrayCuenta = null;
        File f = null;
        FileReader fr =null;
        BufferedReader br = null;
        try {
        f = new File ("C:/Users/Rodrigo/Documents/JCreator LE/MyProjects/hola2/classes/hola.txt");
        fr = new FileReader (f);
        br = new BufferedReader (fr);
        arrayCuenta = new ArrayList ();
        String linea;
        while ( (linea = br.readLine()) != null ) {
            String[] partesDelString = linea.split("_");
            int i = Integer.parseInt ( partesDelString[0] );
            String s = partesDelString[1];
            double d = Double.parseDouble ( partesDelString[2] );
            Cuenta nuevaCuenta = new Cuenta (i,s,d);
            arrayCuenta.add (nuevaCuenta);
        }
        }
        catch (FileNotFoundException fnfe) {System.out.println("error1"); } catch (IOException ioe) {System.out.println("error2");}
        finally {
            try{
                if (fr != null)
            fr.close();}
            catch (IOException ioe) {System.out.println("error3");}
            if (arrayCuenta != null)
            for (Cuenta cuenta : arrayCuenta) {
            System.out.println ("Int:    " + cuenta.getI() + " Nombre :   "+ cuenta.getNombre() + "  Double:   "+ cuenta.getD() );
        }
        }
    }
}
class Cuenta {
    int i;
    String nombre;
    double d;
    public Cuenta (int i, String n, double d) {
        this.i = i;
        nombre = n;
        this.d = d;
    }
    public int getI () {
        return i;
    }
    public String getNombre () {
        return nombre;
    }
    public double getD () {
        return d;
    }
}
Rigo123... gracias por su ayuda, es muy importante, pues quiero aprender java...
Compilo el programa con las modificaciones de acuerdo a mi archivo ".txt", borre su class cuenta, coloque la que yo tengo en un archivo aparte, pero en la misma carpeta todo. ¿Me genera el error No. 1 (al correr el programa) que puede estar pasando ahí? ...esta es mi class Cuenta:
public class Cuenta {
   private String  nombre; // nombre del cliente
   private int  numero;   // numero de la cuenta
   private double  saldo; // saldo de la cuenta
   public Cuenta() {
      nombre = "";
      numero = 0;
      saldo = 0.0d;
   }
   public Cuenta(int numero, String nombre,  double saldo) {
      this.nombre = nombre;
      this.numero = numero;
      this.saldo = saldo;
   }
   public String obtenNombre() {
      return nombre;
   }
   public int obtenNumero() {
      return numero;
   }
   public double obtenSaldo() {
      return saldo;
   }
   public void cambiaNombre(String nombre) {
  this.nombre = nombre;
   }
   public void cambiaNumero(int numero) {
  this.numero = numero;
   }
   public void cambiaSaldo(double saldo) {
  this.saldo = saldo;
   }
   public void deposita(double cantidad) {
        cambiaSaldo(obtenSaldo() + cantidad);
   }
   public boolean retira(double cantidad) {
        if (cantidad <= obtenSaldo()) {
         cambiaSaldo(obtenSaldo() - cantidad);
         return true;
         }
         return false;
   }
   public String toString() {
        return obtenNumero() + " " + obtenNombre() + " " + obtenSaldo();
   }
 }
El error 1 se debe al FileNotFoundException, quiere decir que no encuentra tu archivo. Revisa si has escrito la ruta correctamente:
f = new File ("C:/Users/Rodrigo/Documents/JCreator LE/MyProjects/hola2/classes/hola.txt");
//(Este fue en el caso de mi computadora, la ruta tuya debe de ser distinta)
Si deseas puedes escribir solamente:
f = new File ("hola.txt"); //O como se llame el archivo, siempre y cuando el archivo esté en la misma carpeta de las clases compiladas.
---
Me pareció dijiste que habías modificado algo pero no sé si corregiste bn la ruta.
Aquí estamos para ayudar :D

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas