Java - Ayuda para guardar datos de un .txt a un array

 
Vista:

Ayuda para guardar datos de un .txt a un array

Publicado por Luis (1 intervención) el 21/09/2011 05:44:01
les cuento, estoy realizando un programa y necesito tomar los datos de un archivo .txt y almacenarlos en un array de enteros, ademas el usuario debe seleccionar el archivo .txt. estos tienen la siguiente forma:
3 3 0 2
3 4 5
3 3 3
2 4 4
0 1 1
1 2 2
0 2 12

este es el codigo que tengo:
una clase para el archivo:
public class Archivo {

public String elegirArchivo(){

File f;
javax.swing.JFileChooser j = new javax.swing.JFileChooser();
j.showOpenDialog(j);
String path = j.getSelectedFile().getAbsolutePath();
String lectura = "";
f = new File(path);
try{
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String aux;
while((aux = br.readLine()) != null)
lectura = lectura+aux+"\n";
} catch (IOException e){}
return lectura;
}
}

y la clase main :

public class Trinity {
public static void main(String[] args) {
Archivo a = new Archivo();
String l = a.elegirArchivo();
System.out.println(l);


que modificacion deberia hacerle para lograr lo que necesito? gracias de antemano :)
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

Ayuda para guardar datos de un .txt a un array

Publicado por Alarde (2 intervenciones) el 04/10/2011 16:30:09
Buenas, por aquí tengo una solución, más vale tarde que nunca ;)

Te copio y pego código:

Clase Archivo.java

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Archivo {

public String elegirArchivo(){

File f;
javax.swing.JFileChooser j = new javax.swing.JFileChooser();
j.showOpenDialog(j);
String path = j.getSelectedFile().getAbsolutePath();
String lectura = "";
f = new File(path);
try{
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String aux;
while((aux = br.readLine()) != null)
lectura = lectura+aux+"\n";
} catch (IOException e){}
return lectura;
}

public void recuperafichero(String lectura){

int[] array = new int[100000];
List<String> nombre_cortado = new ArrayList<String>();
nombre_cortado = new StrTok().corta_por_separador(lectura, " ", "\\n");
int i = 0;
for(i=0; i <nombre_cortado.size();i++){
System.out.println(nombre_cortado.get(i));
}
}


}

Clase Trinity o main

import java.util.ArrayList;
import java.util.List;


public class Trinity {
public static void main(String[] args) {
List<String> array = new ArrayList<String>();
Archivo a = new Archivo();
String l = a.elegirArchivo();
array = a.recuperafichero(l);
for(int i = 0; i<array.size();i++){
System.out.println(array.get(i));
}
}
}

Y una nueva clase StrTok para cortar las cadenas basándonos en dos tokens:

package ficheros.formato;

import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;

public final class StrTok {

public List<String> corta_por_separador(String cadena, String separador, String separador2){

List<String> cortada1 = new ArrayList<String>();
List<String> cortada2 = new ArrayList<String>();

@SuppressWarnings("unused")
int i = 0;
//Cortamos toda la cadena
StringTokenizer tokens = new StringTokenizer(cadena, separador);
while(tokens.hasMoreTokens()){
cortada1.add(tokens.nextToken());
i++;
}
//Volvemos a cortar la cadena buscando el segundo separador
i = 0;
for(int j=0;j<cortada1.size();j++){
StringTokenizer tokens2 = new StringTokenizer(cortada1.get(j), separador2);
while(tokens2.hasMoreTokens()){
cortada2.add(tokens2.nextToken());
i++;
}
}
return cortada2;
}
}


Espero que te sirva!
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

Ayuda para guardar datos de un .txt a un array

Publicado por Alarde (2 intervenciones) el 04/10/2011 16:37:52
La primera clase hay que cambiar cosas.. pon esta otra!


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Archivo {

public String elegirArchivo(){

File f;
javax.swing.JFileChooser j = new javax.swing.JFileChooser();
j.showOpenDialog(j);
String path = j.getSelectedFile().getAbsolutePath();
String lectura = "";
f = new File(path);
try{
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String aux;
while((aux = br.readLine()) != null)
lectura = lectura+aux+"\n";
} catch (IOException e){}
return lectura;
}

public List<String> recuperafichero(String lectura){

List<String> nombre_cortado = new ArrayList<String>();
nombre_cortado = new StrTok().corta_por_separador(lectura, " ", "\\n");
return nombre_cortado;
}


}
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