Foros del Web » Programación para mayores de 30 ;) » Java »

lectura de archivo

Estas en el tema de lectura de archivo en el foro de Java en Foros del Web. buenas, no tenog ni remota idea de como leer un fichero con las siguientes caracteristicas: 5 86 68 28 30.2 0.364 24 0 son 8 ...
  #1 (permalink)  
Antiguo 03/03/2009, 09:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
lectura de archivo

buenas, no tenog ni remota idea de como leer un fichero con las siguientes caracteristicas:

5 86 68 28 30.2 0.364 24 0

son 8 datos, que no importa vamos a tomar que todos son de tipo double, al utilizar la siguiente linea de codigo:

String entrada = archivo.readLine();

me va a quedar como la vareable lo dice una cadena de string, y yo lo que necesito es leer cada dato, en este caso son 8 datos y colocarlos en un array vector como lo quieran llamar, si estuviera utilizando C se solo utilizaria scanf ("%f %f etc etc etc"), peor mi pregunta es como hacerlo en Java..

Estaba leyendo el uso de readInt(), readDouble(), etc tec y no se si fue que los use mal o de verda no logre nada con ellos, quisiera una ayuda.. Muchas Gracias y disculpen la ignorancia
  #2 (permalink)  
Antiguo 03/03/2009, 09:56
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: lectura de archivo

lo q puedes hacer es leer toda la linea, depues la vas recorriendo y guardando en un StringBuffer hasta q encuentres un espacio, cuando encuentres el espacio, lo q tengas en el stringbuffer lo parseas a double y lo guardas en un vector como tu dices, esa podria ser una opcion, no conozco otra, bueno espero q te sirva, bye
  #3 (permalink)  
Antiguo 03/03/2009, 11:20
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: lectura de archivo

ok yo estaba pensando eso memso algo si fijate:

String entrada = archivo.readLine();
int cantidadNumeros=Integer.parseInt(entrada);
System.out.println(cantidadNumeros);
entrada = archivo.readLine();

while (entrada != null)
{
i=0;
while (i < cantidadNumeros)
{
aux = entrada.charAt(i);

aChar = new Character((char)aux).toString();
X[i] = Double.valueOf(aChar).doubleValue();
System.out.println(X[i]);
i++;
}
entrada = archivo.readLine();
}

pero me parece totalmente no optimo, como es con el stringbufer? nunca lo he usado si me poedes dar un pequeño ejemplo
  #4 (permalink)  
Antiguo 03/03/2009, 12:39
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: lectura de archivo

hola, mas bien lo que quise decir fue que usaras la clase stringTokenizer, no se en que pensaba cuando dije stringBufrer, pero bueno aqui tienes un ejemplo sencillo

Código PHP:
String entrada archivo.readLine();
    
StringTokenizer tokens=new StringTokenizer(entrada);
    while(
tokens.hasMoreTokens()){
            
X[i]=Double.ParseDouble(tokens.nextToken().toString());
            
i++;
        } 
espero q te sirva, no lo probe xq no tengo a la mano algo para hacerlo,asi q si tiene errores espero q sean minimos, bye
  #5 (permalink)  
Antiguo 03/03/2009, 12:54
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: lectura de archivo

y más sencillo aún, usar el método split() de la clase String. Pasando a este método el espacio, ya te devolverá un array de strings con cada uno de los números

String [] datos = linea.split(" ");

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #6 (permalink)  
Antiguo 03/03/2009, 13:10
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: lectura de archivo

Pues yo creo que con los 2 metodos es igual de simple, pero es cierto que en la documentacion de Java, te aconsejan que uses el split en vez del stringTokenizer (la verdad no se por que), asi que puedes usar el que quieras ya que tu problema no es tan complicado como para que se note la diferencia
  #7 (permalink)  
Antiguo 03/03/2009, 14:45
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: lectura de archivo

muchisimas gracias compañeros sus comentarios me han resuleto el problemas son unos mostros jajaja
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:53.