Un programa que lea un archivo .txt y que guarde en variables lo leido

Iniciado por pedriques, 25 Mayo 2011, 22:26 PM

0 Miembros y 3 Visitantes están viendo este tema.

pedriques

Como puedo hacer un programa en java que lea un archivo de texto con numeros y guardar cada numero en una variable diferente separados los numeros por "|" ejemplo:

1|2|3|3
33|23|4|5

Gracias

Castiblanco


pedriques

podrias explicarme como lo aplico en mi codigo? es que mira yo ya tengo el codigo y este codigo que te mostrare ya lee lo que esta en el archivo de texto, ahora quiero guardar esos numeritos en varias variables. Gracias

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;


public class ExcepcionArchivo {

private String rutaArchivo;
private String linea;

public ExcepcionArchivo(){
this.rutaArchivo="c:/archivo.txt";
}

public void leerArchivo(){
try{
FileReader fr=new FileReader(rutaArchivo);
BufferedReader entradaArchivo=new BufferedReader(fr);
linea=entradaArchivo.readLine();
while (linea != null) {
System.out.println(linea);
linea=entradaArchivo.readLine();
}
}catch(IOException ex){
System.out.println("Error en la apertura del archivo "+ex.toString());
}

}
public static void main(String[] args) {
ExcepcionArchivo ea=new ExcepcionArchivo();
ea.leerArchivo();
}
}

ShotgunLogic

Pista: Usa split para los Strings separarlos como tu quieras, en Oracle hay mas info :laugh:
The clans are marching against the law, bagpipers play the tunes of war, death or glory I will find, rebellion on my mind.

Castiblanco

No me gusta modificar lo de otros ^^, aquí hice un ejemplo que explica cómo se hace.

Código (java) [Seleccionar]
import java.util.StringTokenizer;

public class tokens {

public static void main(String[] args) {
String numeros = "1-2-3-4-5";
int[] arreglo = new int[5];

StringTokenizer aaaaa = new StringTokenizer(numeros, "-");
int numeroTokens = aaaaa.countTokens();

for(int i =0; i<numeroTokens;i++)
{
arreglo[i]= Integer.parseInt(aaaaa.nextToken());
}

for(int i =0; i<numeroTokens;i++)
{
System.out.println(arreglo[i]);
}

}

}


Me avisas si no entiendes.

pedriques

hola gracias por el codigo, pero no entendi muy bien, es que no se si en realidad puedo guardar los datos en la variable leyendolos uno por uno? por ejemplo qusiiera que el programa guardara automaticamente el numero -33 en a, el 2 en b y los demas en sus respectivas posiciones... a b c d e f g h i f .. Para posteriormente realizar calculos, por ejemplo: a * b + c + e - f... para realizar calculos. Gracias.

Castiblanco

Mira, mejor armas un arreglo como lo hice yo, porque igual para que exista "a" TIENES que declarar esa variable y entonces te tocaría declarar todo el abecedario, mejor te creas un arreglo:

Código (java) [Seleccionar]
int[] arreglo = new int[5];

En este caso de enteros de 5 posiciones o de las que quieras, ahora en vez de a tienes arreglo[0], en vez de b tienes arreglo[1] y así...

Entonces eso es lo que hago en el for:

Código (java) [Seleccionar]
for(int i =0; i<numeroTokens;i++)
{
arreglo[i]= Integer.parseInt(aaaaa.nextToken());
}


Simplemente ir recorriendo el arreglo y llenándolo con los números.

Saludos...

pedriques

gracias de verdad, voy a implementarlo, te pregunto una cosa mas, como hago para implementarlo por que yo tengo un archivo de texto en el cual adentro tiene escrito una matriz 4x4 por separadores que hablamos anteriormente, como hago para que java pueda extraer el contenido de esa matriz e ir llenandola en las variables?. Gracias.

Castiblanco

Haz las cosas por partes (divide y vencerás xD), primero que tu trabajo se centre en obtener lo que está en el archivo y guardarlo en un String o en varios o en un arreglo de String, como te quede más cómodo, después de eso ya "implementas" eso de los tokens.

Saludos...

kiriost

http://www.godsys.com.ar > Programación. Hacking y Cracking. Sistemas. Desarrollo Web.
Java, C/C++, PHP, Python, Perl, HTML, Game-Hacking, Defacing, Desarrollo Web, GNU/Linux, y más