style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

pasar texto a un array

hola amigos estoy x aqui liado con un programita de mi curso de java lo que pasa es que me dieron un codigo de un programa que pide ciertos datos y los guarda en un archivo de texto de la siguiente forma

354_pepe gonzales_125000.0
254_oscar rodriguez_126000.0
147_maria cano_546000.0
466_leon muñoz_345000.0

numero de usuario nombre de usuario y saldo de usuario se supone que lo devemos modificar en vez que pida los datos que los cargue de un archivo de txt por parametro del main osea arg[0] pues hasta ahy creo que voy bien no se xD pero tengo los datos en una variable y no se como pasarselos al array para que pueda hacer las otras operacioenes normales o sea pasarle las cuentas tal y como las entrava uno mismo x el teclado ando un poco perdido xD yo diria que demaciado perdido si alguien me puede colaborar se lo agradeceria muccho un saludo les dejo los codes chau

import java.io.*;
import java.util.StringTokenizer;

public class AplicacionArrObjeto3 {
       
       
        private static Cuenta arreglo[];
       
        // para pedir los valores de teclado de el  arreglo de cuentas ya creada
        public static void pide_arreglo() throws IOException{
        BufferedReader in =
                        new BufferedReader(new InputStreamReader(System.in));
       
       
        int n;
        int numero;
        String nombre;
        double saldo;
        System.out.println("¿Cuantos objetos deseas crear?");
        n = Integer.parseInt(in.readLine());
       
        // creamos el arreglo de cuentas
        arreglo = new Cuenta[n];
       
        // pedimos cada valor para crear un objeto cuenta
        for (int i=0; i<n; i++) {
                System.out.print("Da el numero de la cuenta " + (i+1)+ " : ");
                numero = Integer.parseInt(in.readLine());
                System.out.print("Da el nombre de la cuenta " + (i+1)+ " : ");
                nombre = in.readLine();
                System.out.print("Da el saldo de la cuenta " + (i+1)+ " : ");
                saldo = Double.parseDouble(in.readLine());
                // se crea el objeto de la clase Cuenta como elemento del arreglo
                arreglo [i] = new Cuenta(numero, nombre, saldo);
        }                              
        }
       
        // para desplegar los datos del arreglo de cuentas
        public static void despliega_arreglo() {
                System.out.println("Numero     Nombre           Saldo");
        for (Cuenta objeto : arreglo) {
                System.out.println(" " + objeto.obtenNumero() + " " +
                             objeto.obtenNombre() + " " + objeto.obtenSaldo());
        }
        }
       
        // obteniendo la suma de los saldos de todas las cuentas
        public static double suma() {
                double total = 0.0d;
               
        for (Cuenta objeto : arreglo) {
                total += objeto.obtenSaldo();
        }
                return total;
        }
       
        // para calcular el promedio de la matriz cualquiera que sea
        public static double promedio() {
                double total = 0.0d;
               
        for (Cuenta objeto : arreglo) {
                total += objeto.obtenSaldo();
        }
                return total/arreglo.length;
        }
       
        // pedir un saldo y desplegar que tienen un saldo mayor o igual
        public static void despliega_saldos() throws IOException{
        BufferedReader in =
                        new BufferedReader(new InputStreamReader(System.in));
       
        System.out.println("¿Arriba de cual saldo?");
        double saldo = Double.parseDouble(in.readLine());
       
        // buscamos en cada objeto Cuenta del arreglo
        for (Cuenta objeto : arreglo) {
                        if (objeto.obtenSaldo() >= saldo) {
                                System.out.println(" Nombre " + objeto.obtenNombre() +
                                  " Cuenta " +  objeto.obtenNumero() +
                                  " Saldo " + objeto.obtenSaldo());
                        }
        }                              
        }
       
        // ordenamos el arreglo en base al numero de cuenta
        public static void ordena() throws IOException{
       
            // buscamos en cada objeto Cuenta del arreglo
            for (int i=0; i < arreglo.length-1; i++ ) {
                for (int j=i+1; j<arreglo.length; j++) {
                                if (arreglo[i].obtenNumero() > arreglo[j].obtenNumero()) {
                                        Cuenta temp = arreglo[i];
                                        arreglo[i] = arreglo[j];
                                        arreglo[j] = temp;
                                }
                        }
            }                          
        }
       
        public static <arreglo> void main(String Archivo[]) throws IOException {
               
                String Texto = Archivo[0];
                File archivo2 = new File (Texto);
        FileReader fr2 = new FileReader (archivo2);
        BufferedReader br2 = new BufferedReader(fr2);

        // Lectura del fichero
        String linea;
        while((linea=br2.readLine())!=null)
           System.out.println(linea);

            char opcion;
        BufferedReader in =
                        new BufferedReader(new InputStreamReader(System.in));
                       
       
            opcion = ' ';
            while (opcion != '7') {
                System.out.println(" Menu de Cuentas");
                System.out.println();
                System.out.println("1. Pedir datos para crear Cuentas");
                System.out.println("2. Desplegar todas las cuentas");
                System.out.println("3. Desplegar Suma de los saldos");
                System.out.println("4. Desplegar Promedio de los saldos");
                System.out.println("5. Desplegar Cuentas arriba de un Saldo");
                System.out.println("6. Ordenar el arreglo");
                System.out.println("7. Fin");
                System.out.println("¿Opcion deseada (1-6) ?");
                opcion = in.readLine().charAt(0);
                switch (opcion) {
                        case ('1') :
                                System.out.println("Pidiendo datos arreglo Cuentas");
                                pide_arreglo();
                                System.out.println(" " + arreglo.length);
                                break;
                        case ('2') :
                                System.out.println("Desplegando arreglo de Cuentas");
                                despliega_arreglo();
                                break;
                        case ('3') :
                                System.out.println("Suma de los saldos = " + suma());
                                break;
                        case ('4') :
                                System.out.println("Promedio de los saldos = " + promedio());
                                break;
                        case ('5') :
                            System.out.println("Desplegando Cuentas arriba de saldo");
                                despliega_saldos();
                                break;
                        case ('6') :
                            System.out.println("Ordenando Cuentas por numero");
                                ordena();
                                break;
                        case ('7') :
                            System.out.println("Hasta Luego!");
                            break;
                        default:
                            System.out.println("Opcion debe ser de 1 a 5");
                            break;
                };
               
            }

        }

}

public class Cuenta {
   private String nombre; // nombre del cliente
   private int numero;   // numero de la cuenta
   private double saldo; // saldo de la cuenta
   
   // metodo para construir una cuenta vac?a
   public Cuenta() {
      nombre = "";
      numero = 0;
      saldo = 0.0d;
   }
 
   // metodo para construir una cuenta con valores
   public Cuenta(int numero, String nombre,  double saldo ) {
      this.nombre = nombre;
      this.numero = numero;
      this.saldo = saldo;
   }
   
   
 
   // metodo que te da el nombre de la cuenta
   public String obtenNombre() {
      return nombre;
   }
   
   // metodo que te da el numero de la cuenta
   public int obtenNumero() {
      return numero;
   }
   
   // metodo que te da el saldo de una cuenta
   public double obtenSaldo() {
      return saldo;
   }
   
   // metodo que sirve para cambiar el valor del nombre
   public void cambiaNombre(String nombre) {
                this.nombre = nombre;
   }

   // metodo que sirve para cambiar el valor del saldo
   public void cambiaNumero(int numero) {
                this.numero = numero;
   }

   // metodo que sirve para cambiar el valor del saldo
   public void cambiaSaldo(double saldo) {
                this.saldo = saldo;
   }
   
   // metodo para depositar
   public void deposita(double cantidad) {
            cambiaSaldo(obtenSaldo() + cantidad);
   }
   
   // metodo para retirar
   public boolean retira(double cantidad) {
            if (cantidad <= obtenSaldo()) {
                cambiaSaldo(obtenSaldo() - cantidad);
                return true;
            }
            return false;
   }
   
   // metodo para regresar un String como objeto
   public String toString() {
            return obtenNumero() + " " + obtenNombre() + " " + obtenSaldo();
   }
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Jose Manuel

Que pare el spam!

Por dios, que se le puede hacer a este spam...

Chavo con tu pregunta me sacas un poco de onda, como es que estas viendo temas de archivos y flujos ademas de metodos un tanto avanzados como para que no sepas controlar un array, en serio estoy medio confundido.

pasar texto a un array

mira men x si no sabes este codigo no lo hice yo es n programa que nos pasaron para modificarlo ademas yo si se trabajar con arrays pero no mas normaal que es pasarle elementos al array como

String array [] = new String {"pepe", "gonzales","casa"} y mostrar los valores por pantalla y no mas apenas estoy viendo java en una vista general ahora yo necesito es pasarle el archivo al array pero tal cual esta en el programa eso si no lo se de todoas formas muchas gracias

Imagen de Jose Manuel

Por eso Rencor, osea que si

Por eso Rencor, osea que si no sabes hacer los manejos con los arreglos, no se como es que puedas entender el codigo.
Pero bueno podrias intentar leyendo la API de Java en la clase StringTokenizer.
Y asi comprendas como es que trabaja el programa, ahora debes de transformar ese contenido de el archivo a un arreglo. Puedes optar por convertir el contenido de la variable a arreglo despues de escribir en el archivo. ¿Como?
Ahh ps facil;
Esta es la instruccion para hacer la conversion
String[]     split(String regex)

Ahora un ejemplo para que lo entiendas mejor.

 

import java.util.StringTokenizer;

public class PruebaSplit
{
        public static void main(String args[])
                {
                        StringTokenizer prueba = new StringTokenizer("Esto es una prueba");
                                while(prueba.hasMoreTokens())
                                {
                                        System.out.println(prueba.nextToken());
                                }
                       
                        System.out.println("\n");
                        String cadena = "Esto es, una prueba";
                        String[] arregloDeCadena = cadena.split("  ");
                                for(int i=0; i<arregloDeCadena.length; i++)
                                        {
                                                System.out.println(arregloDeCadena[i]);
                                        }
                }
               
}

La prueba es:

Uploaded with ImageShack.us

Imagen de JaimeItlzc

Array's

Puedes hacer esto:

RandomAccessFile objeto;
objeto=new RandomAccessFile("D:/datos.txt","r");       

String T[]={" "," "," "," "};//Numero, nombre,saldo

while(CEL.getFilePointer()<CEL.length())
                {
                       
                        m=objeto.readLine();
                        if(T[n]==" "){
                                T[n]=m;
                        n++;
                       }
           if(n==4){
                        for(int k=0;k<3;k++){
                             System.out.print(T[k]+"\t\t");
                                }
                        System.out.print("\n");
         }
objeto.close();

Saludos.

arrays

hola amigos muchas gracias x su colaboracion estoy muy agradecido coy a ver que tom de sus ejemplos ya que el texto se deve de cargar por medio de un argumento de la funcion main o sea cuando se ejecuta

x ejemplo java programa datos.txt

entonces ahy voy a ver como puedo adaptar sus codigos un saludo bytes

Imagen de rodrigo salado anaya

@ReNcOoR : )

Te dejo un ejemplo de lo que hice mientras estaban los jefes en junta jejejeje y no tenia mucho que hacer....
Según yo solo es para que te guies ok, pero pregunta a mas chic@s de la comunidad... en la noche ya lo edito para que tenga comentarios y toda la onda : )

package org.javamexico.textoarreglo;

/**
 *
 * @author Rodrigo Salado Anaya <@Rodrigo_Salado>
 */

public class Cuenta {

    private String nombre;
    private int numero;
    private double saldo;

    public Cuenta() {
    }

    public Cuenta(int numero, String nombre, double saldo) {
        this.numero = numero;
        this.nombre = nombre;
        this.saldo = saldo;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public double getSaldo() {
        return saldo;
    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }
}

package org.javamexico.textoarreglo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;

/**
 *
 * @author Rodrigo Salado Anaya <@Rodrigo_Salado>
 */

public class LectorRegistro {

    /*Atributos*/
    private File archivo;
    private FileReader archivoLectura;
    private BufferedReader bufferLectura;
    private FileWriter archivoEscritura;
    private PrintWriter bufferEscritura;
    private String[] args;
    private String registroTexto;
    private StringTokenizer tokens;
    private String tokenActual;
    private Cuenta cuenta;

    /*ARGS*/
    public boolean esArregloVacio(String[] args) {
        this.args = args;
        return this.args.length == 0;
    }

    /*ARCHIVO*/
    public boolean existeArchivo() {
        this.archivo = new File(this.args[0]);
        System.out.println("FILE_PATH: " + this.archivo.getAbsolutePath() + "\n");
        return this.archivo.exists();
    }

    public void imprimirContenido() throws IOException {
        this.archivoLectura = new FileReader(archivo);
        this.bufferLectura = new BufferedReader(archivoLectura);
        this.registroTexto = bufferLectura.readLine();
        do {
            boolean separaTokens = this.separaTokens(this.registroTexto);
            if (separaTokens == true) {
                this.imprimeRegistro();
            } else {
                System.err.println(this.registroTexto);
            }
            this.registroTexto = bufferLectura.readLine();
        } while (this.registroTexto != null);
        this.archivoLectura.close();
    }

    /*DETALLAR REGISTRO*/
    public boolean separaTokens(String registroTexto) {
        boolean matches = false;

        this.tokens = new StringTokenizer(registroTexto, "_");
        if (this.tokens.countTokens() != 3) {
            System.out.println("Error: Al leer el registro.");
            return false;
        }
        matches = this.revisaDato("\\d*", "Error: En el numero del registro.", 0);
        if (matches) {
            return false;
        }
        matches = this.revisaDato("\\w*\\s*\\w*", "Error: En el nombre del registro.", 1);
        if (matches) {
            return false;
        }
        matches = this.revisaDato("\\d*\\.\\d*", "Error: En el saldo del registro.", 2);
        if (matches) {
            return false;
        }
        return true;
    }

    public boolean revisaDato(String expresion, String posibleError, int indice) {
        this.tokenActual = tokens.nextToken();
        boolean matches = this.tokenActual.matches(expresion);
        if (matches) {
            cuenta = new Cuenta();
            if (indice == 0) {
                int numero = Integer.parseInt(this.tokenActual);
                cuenta.setNumero(numero);
            }
            if (indice == 1) {
                cuenta.setNombre(tokenActual);
            }
            if (indice == 2) {
                double saldo = Double.parseDouble(this.tokenActual);
                cuenta.setSaldo(saldo);
            }
        } else {
            System.out.println(posibleError);
            return false;
        }
        return true;
    }

    public void imprimeRegistro() {
        System.out.println(
                this.cuenta.getNumero() + "   "
                + this.cuenta.getNombre() + "   "
                + this.cuenta.getSaldo());
    }

    public void agregarRegistro(List<Cuenta> listaCuentas) throws IOException {
        this.archivoEscritura = new FileWriter(this.archivo, true);
        this.bufferEscritura = new PrintWriter(this.archivoEscritura);

        Iterator iterator = listaCuentas.iterator();
        while (iterator.hasNext()) {
            cuenta = (Cuenta) iterator.next();
            bufferEscritura.println(this.cuenta.getNumero() + "_"
                    + this.cuenta.getNombre() + "_"
                    + this.cuenta.getSaldo());
            System.out.println("Escribiendo: ");
            this.imprimeRegistro();
        }
        this.archivoEscritura.close();
    }

    /*FIN DEL PROGRAMA*/
    public void terminar() {
        System.out.println("FIN [OK]");
        System.exit(0);
    }

    public void salioError(String error) {
        System.err.println("FIN [ERROR]: " + error);
        System.exit(-1);
    }
}

package org.javamexico.textoarreglo;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Rodrigo Salado Anaya <@Rodrigo_Salado>
 */

public class Main {

    public static void main(String[] args) throws IOException {
        List<Cuenta> listaCuentas = new ArrayList<Cuenta>();
        LectorRegistro textoArreglo = new LectorRegistro();

        boolean esArregloVacio = textoArreglo.esArregloVacio(args);
        if (esArregloVacio == true) {
            textoArreglo.salioError("Arreglo vacio.");
        }

        boolean existeArchivo = textoArreglo.existeArchivo();
        if (existeArchivo == false) {
            textoArreglo.salioError("El archivo no existe");
        }

        textoArreglo.imprimirContenido();

        /*Agregando Registros*/
        listaCuentas.add(new Cuenta(100, "Rodrigo Salado", 100.99));
        listaCuentas.add(new Cuenta(99, "Java Mexico", 99.99));
        listaCuentas.add(new Cuenta(29, "J S", 39.99));
        listaCuentas.add(new Cuenta(89, "SSS OOO", 49.99));
        listaCuentas.add(new Cuenta(79, "ESXCDER ERTYHNBGT", 59.99));

        textoArreglo.agregarRegistro(listaCuentas);

        textoArreglo.terminar();

    }
}

Salida en consola:

FILE_PATH: C:\NetBeansProjects\javaMexico\TextoArreglo\registros.txt

354_pepe gonzales_125000.0
254_oscar rodriguez_126000.0
147_maria cano_546000.0
466_leon mu�oz_345000.0
Escribiendo:
100   Rodrigo Salado   100.99
Escribiendo:
99   Java Mexico   99.99
Escribiendo:
29   J S   39.99
Escribiendo:
89   SSS OOO   49.99
Escribiendo:
79   ESXCDER ERTYHNBGT   59.99
FIN [OK]

Enserio espero te sirva. bye : )
Nota: toma en cuenta que al agregar datos y muchas otras cosas puede tronar va, por que los tokens no se validan y pues hasta solo con mandar otro String con los datos bastaría solo te quería dejar unos ejemplos : D.....

arrays

hola men muchisimas gracias x la colaboracion prestada esta exelente su ejemplo me ahs salvado la vida xD un saludo bytes

Imagen de rodrigo salado anaya

Solo ejemplos

Pues te digo que solo son ejemplos... porque puede quedar muy bonito todo el código si lo separas y ....
De favor puedes poner tu código cuando lo termines? nos ayudara a varios... gracias y de nada : P.

Si entendí bien lo que

Si entendí bien lo que quieres es leer un archivo de texto y crear objetos de tipo cuenta en un arreglo.

Lo más sencillo, es que leas linea por linea y en cada linea crees un objeto nuevo. Le puedes diferir al objeto la creación correcta.

Cuando tienes un número variable de datos a almacenar, lo mejor es usar una lista, puedes si quieres, convertirla después a un arreglo ( aunque quizá ya no haga mucho sentido )

¬¬ Creo que se entenderá mejor con código:

package demo;

import java.io.*;
import java.util.*;

/**
 * Lee datos de un archivo de texto con lineas siguiedo el formato: "00_XYZ_00.00"
 */

public class LeerDatos {
        public static void main( String [] args ) throws  IOException {
                Cuenta[] datos = leeDatos( validaEntrada( args ) );
                for( Cuenta c : datos ) {
                        System.out.println( c );
                }
        }
        /**
         * Valida que exista un archivo valido para leer
         */

        private static File validaEntrada( String [] args ) {
                File f = null;
                if( args.length < 1 || !( f = new File( args[0] ) ).exists() ) {
                    System.out.println("Debe de especificar un nombre de archivo valido");
                        System.exit(-1);
                }
                return f;
        }

        /**
         * Lee datos del archivo especificado y crear objetos de tipo Cuenta,.
         * Regresa un arreglo de cuentas.
         */

        private static Cuenta[] leeDatos( File deArchivo ) throws IOException {
                BufferedReader reader = null;
                List<Cuenta> lista = new ArrayList<Cuenta>();
                try {
                        reader = new BufferedReader( new FileReader( deArchivo ) );
                        String linea = null;
                        while( ( linea = reader.readLine() ) != null ) {
                                lista.add( new Cuenta( linea ) );
                        }
                } finally {
                        if( reader != null ) try {
                                reader.close();
                        } catch( IOException ioe ) {
                                // si fallo mientras cerrabamos,
                                // es seguro ignorarlo
                        }
                }
                return lista.toArray( new Cuenta[lista.size()] );
        }

}
class Cuenta {
        private final int numero;
        private final String nombre;
        private double saldo;

        public Cuenta( String spec ) {
                // la linea debe de venir asi: nn_xxx_d.d
                // si no viene es un error en el formato y fallará.
                String [] parts = spec.split("_");
                numero = Integer.parseInt( parts[0] );
                nombre = parts[1];
                saldo  = Double.parseDouble( parts[2] );

        }
        public String getNombre() {
                return nombre;
        }
        public int getNumero() {
                return numero;
        }
        public double getSaldo() {
                return saldo;
        }
        public String toString() {
                return String.format("[%d] %s $%.2f", numero, nombre, saldo );
        }
}

Espero te sirva.

arrays

bueno yo creo que el compañero que posteo de primero tiene razon si no se vien como es la cosa se me es muy dificil yo tengo un code modificado con la ayuda de ustedes y algunos manuales que he leido pero no se en que estoy fallando modificar un codigo y dajarlo talcual es para gente profesional yo soy super novato creo que voy a matar a mi profesor xD apenas en el segundo curso y ya modificando fuentes cree que somos super genios esta loco

pd: muchas gracias por sus colaboraciones me an servido de algo aunque no he podido nisiquiera asi este es el codigo con la modificacion me lanza un tipo de excepcion al ejecutarlo espero alguien me pueda dar una luz muchas gracias un saludo

import java.awt.List;
import java.io.*;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class AplicacionArrObjeto3 {
       
       
        private static Cuenta arreglo[];
       
        // para pedir los valores de teclado de el  arreglo de cuentas ya creada
        public static void pide_arreglo() throws IOException{
        BufferedReader in =
                        new BufferedReader(new InputStreamReader(System.in));                          
        }
       
       
       
       
       
       
       
       
        // para desplegar los datos del arreglo de cuentas
        public static void despliega_arreglo() {
                System.out.println("Numero     Nombre           Saldo");
        for (Cuenta objeto : arreglo) {
                System.out.println(" " + objeto.obtenNumero() + " " +
                             objeto.obtenNombre() + " " + objeto.obtenSaldo());
        }
        }
       
        // obteniendo la suma de los saldos de todas las cuentas
        public static double suma() {
                double total = 0.0d;
               
        for (Cuenta objeto : arreglo) {
                total += objeto.obtenSaldo();
        }
                return total;
        }
       
        // para calcular el promedio de la matriz cualquiera que sea
        public static double promedio() {
                double total = 0.0d;
               
        for (Cuenta objeto : arreglo) {
                total += objeto.obtenSaldo();
        }
                return total/arreglo.length;
        }
       
        // pedir un saldo y desplegar que tienen un saldo mayor o igual
        public static void despliega_saldos() throws IOException{
        BufferedReader in =
                        new BufferedReader(new InputStreamReader(System.in));
       
        System.out.println("¿Arriba de cual saldo?");
        double saldo = Double.parseDouble(in.readLine());
       
        // buscamos en cada objeto Cuenta del arreglo
        for (Cuenta objeto : arreglo) {
                        if (objeto.obtenSaldo() >= saldo) {
                                System.out.println(" Nombre " + objeto.obtenNombre() +
                                  " Cuenta " +  objeto.obtenNumero() +
                                  " Saldo " + objeto.obtenSaldo());
                        }
        }                              
        }
       
        // ordenamos el arreglo en base al numero de cuenta
        public static void ordena() throws IOException{
       
            // buscamos en cada objeto Cuenta del arreglo
            for (int i=0; i < arreglo.length-1; i++ ) {
                for (int j=i+1; j<arreglo.length; j++) {
                                if (arreglo[i].obtenNumero() > arreglo[j].obtenNumero()) {
                                        Cuenta temp = arreglo[i];
                                        arreglo[i] = arreglo[j];
                                        arreglo[j] = temp;
                                }
                        }
            }                          
        }
       
        public static <arreglo> void main(String Archivo[]) throws IOException {
               
                       
                        System.out.println(Archivo[0]);
                        File f = null;
                        FileReader lector = null;
                        BufferedReader buffer = null;
                        //como no se sabe cuantas lineas va a tener el archivo no sabemos de que
                        //tamaño definir el array por eso crearemos una estructura de datos que
                        //crezca dinamicamente un List
                        ArrayList<Cuenta> lista = new ArrayList<Cuenta>();
                        try {
                        //cargar Archivo de texto
                        f = new File(Archivo[0]);
                        //Creamos un lector del Archivo
                        lector = new FileReader(f);
                        //Creamos el buffer de lectura
                        buffer = new BufferedReader(lector);
                        String linea = "";
                        //comenzamos a recorrer el archivo leyendo linea a linea
                        do {
                        //obtenemos la siguiente linea del archivo
                        linea = buffer.readLine();
                        if (linea != null) {
                        //crear un tokenizador para separar la linea del archivo
                        StringTokenizer st = new StringTokenizer(linea, "_");
                        //recorremos los tokens para ir sacando los datos de numero, nombre y saldo
                        int numero = 0;
                        String nombre = "";
                        double saldo = 0;
                        for (int i = 0; i < 3; i++) {
                        switch (i) {
                        case 0:
                        numero = Integer.parseInt(st.nextToken());
                        break;
                        case 1:
                        nombre = st.nextToken();
                        break;
                        case 2:
                        saldo = Double.parseDouble(st.nextToken());
                        break;
                        default:
                        break;
                        }
                        }
                        Cuenta cta = new Cuenta(numero, nombre, saldo);
                        lista.add(cta);
                        }
                        } while (linea != null);
                        //ya estan cargados los datos del archivo a una Lista
                        //Creo un array del tamaño de la lista
                        Cuenta[] arreglo = new Cuenta[lista.size()];
                       
                        int posicion = 0;
                        //recorro la lista para ir guardando en el array las cuentas
                        for (Cuenta cuenta : lista) {
                        arreglo[posicion++]=cuenta;
                        }
                        } catch (Exception e) {
                        System.out.println("se ha presentado un error " + e.getMessage());
                        }
                       
                       
           

            char opcion;
        BufferedReader in =
                        new BufferedReader(new InputStreamReader(System.in));
                       
       
            opcion = ' ';
            while (opcion != '7') {
                System.out.println(" Menu de Cuentas");
                System.out.println();
                System.out.println("1. Pedir datos para crear Cuentas");
                System.out.println("2. Desplegar todas las cuentas");
                System.out.println("3. Desplegar Suma de los saldos");
                System.out.println("4. Desplegar Promedio de los saldos");
                System.out.println("5. Desplegar Cuentas arriba de un Saldo");
                System.out.println("6. Ordenar el arreglo");
                System.out.println("7. Fin");
                System.out.println("¿Opcion deseada (1-6) ?");
                opcion = in.readLine().charAt(0);
                switch (opcion) {
                        case ('1') :
                                System.out.println("Pidiendo datos arreglo Cuentas");
                                pide_arreglo();
                                System.out.println(" " + arreglo.length);
                                break;
                        case ('2') :
                                System.out.println("Desplegando arreglo de Cuentas");
                                despliega_arreglo();
                                break;
                        case ('3') :
                                System.out.println("Suma de los saldos = " + suma());
                                break;
                        case ('4') :
                                System.out.println("Promedio de los saldos = " + promedio());
                                break;
                        case ('5') :
                            System.out.println("Desplegando Cuentas arriba de saldo");
                                despliega_saldos();
                                break;
                        case ('6') :
                            System.out.println("Ordenando Cuentas por numero");
                                ordena();
                                break;
                        case ('7') :
                            System.out.println("Hasta Luego!");
                            break;
                        default:
                            System.out.println("Opcion debe ser de 1 a 5");
                            break;
                };
               
           

            }

}

}

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">