Java - manejo de archivos de texto con java

 
Vista:

manejo de archivos de texto con java

Publicado por Mariana (24 intervenciones) el 23/02/2011 18:43:31
Hola a todos estoy leyendo mas sobre el manejo de archivos de texto con java y hay una parte que medio relaciona con el o del StringTokenizer
porfavor si alguien sabe que es el StringTokenizer y como utilizarlo Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:manejo de archivos de texto con java

Publicado por YamilBracho (2315 intervenciones) el 23/02/2011 23:21:00
http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/colecciones/stringtokenizer.htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:manejo de archivos de texto con java

Publicado por java_jediknight (13 intervenciones) el 24/02/2011 00:30:29
EL StringTokenizer es una clase que te permite separar cadenas en base a un "token" o delimitador que tú escojas, este delimitador es un caracter, por lo general suelen ser comas, puntos y comas, barras o lo que quieras usar por convención. Por ejemplo, si tienes la siguiente linea:

Hola,Mundo,Mi,Nombre,Es,Duke

La clase StringTokenizer puede ayudarte a recuperar las partes que se encuentran antes, entre y después del delimitador, en este caso: la coma (,)

Con lo cual podrías obtener:

Hola
Mundo
Mi
Nombre
Es
Duke

¿Cómo se aplica esto en archivos? Bueno, tal vez hayas escuchado hablar de los archivos CSV, o archivos delimitados por comas, obviamente, dependiendo de cómo quieras trabajar, como mencioné anteriormente, puedes usar otros delimitadores: ";" "/" "&" "," ":"

Los CSV o cualquier archivo puede contener información importante, supongamos que tienes un programa que lee los datos de los clientes que se registran.
Entonces, digamos que defines que en cada linea de tu documento se encuentran los datos de un cliente, por ejemplo en un archivo .txt:

Archivo: Clientes.txt
El archivo contiene:

C01,Albert,Einstein,45,2000
C02,Steve,Hopkins,40,1800
C03,Ozzy,Osborne,58,2300

Donde la distribución de la información es así: Código,Nombre,Apellido,Edad,Sueldo

Entonces, tú quieres cargar esos datos para mostrarlos, haces lo siguiente:

1. Lees el archivo:
BufferedReader br = new BufferedReader(new FileReader("Clientes.txt"));

2. Defines una variable que guardará la linea
String linea = null;

3. Haces un bucle WHILE, y dices que mientras el BufferedReader encuentre una linea para leer, recorra esa linea y analice sus datos, una vez que se cambia de linea, vuelve analizar los datos sólo de esa linea hasta el final del archivo.
while( (linea = br.readLine()) != null)

4. Cuando el archivo termina, el br.readLine te devuelve null, pero para ese entonces tú ya puedes capturar los datos, programando variables, al final el while completo te quedaría así y es ahí donde entra tu StringTokenizer

while( (linea = br.readLine()) != null){
//Como el delimitador es una coma, lo indico al momento de invocar al StringTok
StringTokenizer mistokens = new StringTokenizer(linea, ",");
//Ahora recupero los datos y los muestro, el trim solo elimina espacios en blanco si //es que los hay, una forma segura para leer datos:
String codigo = tokens.nextToken().trim();
String nombre = tokens.nextToken().trim();
String edad = tokens.nextToken().trim();
String sueldo = tokens.nextToken().trim();

//Entonces muestras los datos en consola o en algun componente SWING
System.out.println("Código es: " + codigo);
System.out.println("Nombre es: " + nombre);
System.out.println("Apellido es: " + apellido);
System.out.println("Edad es: " + edad);
System.out.println("Sueldo es: " + sueldo);

}//Fin del while

El proceso de mostrar se repetirá cada vez que recorra una linea, así que te mostrará los registros de todo el archivo, así sean 3, 10, 100 o 1000.

Obviamente la edad y el sueldo son valores numéricos y si en algún momento los deseas operar sólo basta con hacer el PARSE básico

int edadOperar = Integer.parseInt(edad);
double sueldoOperar = Double.parseDouble(sueldo);

De igual modo ya puedes añadir tu lógica si trabajas con entidades o beans o listas de entidades.

Espero te haya servido Mariana, éxitos en todo ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar