Leer de un fichero.
Hola!
Debo leer un fichero en el cual hay integers, doubles y strings. He intentado utilizar las clases FileInputStream y DataInputStream, con sus métodos readInt, readDouble, etc, pero me coge mal los datos.
Según he leÃdo más tarde, un DataInputStream solo puede leer datos escritos por DataOutputStream, porque no utiliza un formato ASCII estándard, sinó UTF-8, un "unicode algo modificado", dicen.
Entonces... como puedo leer un fichero que esté escrito en ASCII normal, si entiendo que no puedo utilizar las clases anteriormente mencionadas?
Yo quiero coger los datos con sus formatos, si son integers, pues ponerlos en un int, si son doubles, en un double, si son palabras, en un string... si lo cojo todo junto en una lÃnea (que por cierto, el readLine aparece como "deprecated" y no se puede usar, creo) luego podré darle formato? Como?
Muchas gracias!
Debo leer un fichero en el cual hay integers, doubles y strings. He intentado utilizar las clases FileInputStream y DataInputStream, con sus métodos readInt, readDouble, etc, pero me coge mal los datos.
Según he leÃdo más tarde, un DataInputStream solo puede leer datos escritos por DataOutputStream, porque no utiliza un formato ASCII estándard, sinó UTF-8, un "unicode algo modificado", dicen.
Entonces... como puedo leer un fichero que esté escrito en ASCII normal, si entiendo que no puedo utilizar las clases anteriormente mencionadas?
Yo quiero coger los datos con sus formatos, si son integers, pues ponerlos en un int, si son doubles, en un double, si son palabras, en un string... si lo cojo todo junto en una lÃnea (que por cierto, el readLine aparece como "deprecated" y no se puede usar, creo) luego podré darle formato? Como?
Muchas gracias!
La codificacion UTF-8 es para leer formato ASCII (caractereres raros) La codificacion Latin-1 es unicode.
Saludos
Saludos
Para leer ficheros sin liarte mucho puedes usar la clase RandomAccessFile.
Si el fichero es de texto y se puede leer (con cadenas de caracteres y numeros en formato ascii que se entienden), debes leer siempre strings (por ejemplo, lineas completas con el readLine() que aqui no esta deprecated) y luego extraer subcadenas (puedes usar la clase StringTokenizer) y usar metodos de las clases Integer, Double, etc para hacer las conversiones a int, double, etc.
Los metodos readInt() y demas solo sirven si el fichero contiene el entero en formato de entero, es decir, cuatro bytes raros que el ordenador entiende, pero tu no cuando miras el fichero.
Se bueno.
Si el fichero es de texto y se puede leer (con cadenas de caracteres y numeros en formato ascii que se entienden), debes leer siempre strings (por ejemplo, lineas completas con el readLine() que aqui no esta deprecated) y luego extraer subcadenas (puedes usar la clase StringTokenizer) y usar metodos de las clases Integer, Double, etc para hacer las conversiones a int, double, etc.
Los metodos readInt() y demas solo sirven si el fichero contiene el entero en formato de entero, es decir, cuatro bytes raros que el ordenador entiende, pero tu no cuando miras el fichero.
Se bueno.
