Ficheros

Alberto
14 de Noviembre del 2005
Alguien me podría decir cómo leer de un fichero de texto normal y corriente números para guardarlos en variables de tipo int?
Por ejemplo, el fichero podria ser esto:
123 68 49
y lo q me gustaría es guardar esos 3 valores en 3 variables de tipo entero diferentes.

JASANRIO
14 de Noviembre del 2005
Hola , lo que tienes que hacer , es leerlos caracter y cuando llegue al espacio , guardar en una variable lo que has leido

Para leer un numero es
byte b[]=new byte[1];
in.read(b);
char ch=(char) b[0];
return Integer.parseIn(""+b[0]);

Si tienes alguna duda escribeme

Saludos

Alberto
14 de Noviembre del 2005
Hola, muchas gracias por responder.
Entiendo el código q me has escrito pero si quiero leer números de varios dígitos cómo lo hago? o sea, cómo voy acumulando los dígitos para poder juntarlos en un int? como los números pueden tener diferente número de dígitos cómo lo podría hacer? uff, un poco lioso no? espero q lo hayas entendido :)

Muchas gracias por la respuesta

chuidiang
14 de Noviembre del 2005
Hola:

Lo mejor es que leas una línea completa con readln().

Luego, separa la linea usando los espacios. Usa la clase StringTokenizer(). Esto te dara varias cadenas, una por número.

Luego para cadena debes hacer el Integer.parseInt(cadena);

JASANRIO
14 de Noviembre del 2005
Teniendo en cuenta que por ejemplo 123 se puede descomponer como un polinomio de base 10 , es decir

123=1*100+2*10+3

En codigo:

public int toInt(char[] digito)
{
int c;
int ret=0;
for (c=0;c<digito.length;c++)
{
int r=Integer.parseIn(""+digito[c]);
ret=ret*10+digito[c]
}
}

Dode digito es un array de chars , que representan los digitos de \'0\' al \'9\'

Saludos

jasanrio
14 de Noviembre del 2005
Se me ha olvidado el return , aqui te lo envio

public int toInt(char[] digito)
{
int c;
int ret=0;
for (c=0;c<digito.length;c++)
{
int r=Integer.parseIn(""+digito[c]);
ret=ret*10+digito[c]
}
return ret;
}
Saludos

Alberto
14 de Noviembre del 2005
Muchas gracias a todos!!
mañana lo pruebo a ver q tal :-)

Alberto
14 de Noviembre del 2005
Al final he usado lo de StringTokenize() y funciona perfectamente :-)

for(int M=0;M<Fichero_Longitud;M++)
{
String[] tmp1=d_in.readLine().split(" ");

for(int k=0;k<tmp1.length;k++)
{
int num[h]=Integer.parseInt(tmp1[k]);
h++;
System.out.println(num[h]);
}
}

MUCHISIMAS GRACIAS a todos por vuestra ayuda!!!