Foros del Web » Programación para mayores de 30 ;) » Java »

guardar y cargar un array de strings

Estas en el tema de guardar y cargar un array de strings en el foro de Java en Foros del Web. Hola a todos. Me estoy volviendo loco intentado guardar y luego cargar un array de strings de dimension [10][10], el cual no necesariamente debe estar ...
  #1 (permalink)  
Antiguo 05/04/2008, 11:45
 
Fecha de Ingreso: abril-2008
Mensajes: 5
Antigüedad: 16 años, 1 mes
Puntos: 0
guardar y cargar un array de strings

Hola a todos.
Me estoy volviendo loco intentado guardar y luego cargar un array de strings de dimension [10][10], el cual no necesariamente debe estar lleno, con el resto de posiciones libres a null.
La tactica que utilizo es guardarlo todo como una cadena de texto y a partir de ahi recuperarlo. este es el codigo de los dos metodos con los que lo hago:

public static void guardarCategorias(){
try{
String guardar="", cadenaGuardar;
DataOutputStream salida=new DataOutputStream(new FileOutputStream
(new File(GestionTrabajadores.rutaCategorias)));

byte [] cadena;
for(int i=0;i<categorias.length;i++){
for(int j=0;j<categorias[i].length && categorias[i][j]!=null;j++){
cadenaGuardar=categorias[i][j];
if(categorias[i][j]==null){
categorias[i][j]="";
//guardar+=categorias[i][j];
}
guardar+=categorias[i][j]+" ";

}
}
System.out.println("Se va a guardar "+ guardar);
//guardar=guardar.trim();
cadena=guardar.getBytes();
salida.write(cadena);

salida.writeInt(totalCategorias);
salida.flush();
salida.close();
System.out.println("Se han guardado correctamente las categorias.");



}catch (IOException ioe){
System.err.println("Ha habido un error en el proceso de guardado.");
ioe.printStackTrace();
}
}

public static void cargarCategorias(){
int categoriasIntroducidas=0, pos,b;
String categoria="", cadena;
byte [] cadenaBytes=new byte[5000];System.out.println("Hasta aqui llego");


try{
ObjectInputStream entrada=new ObjectInputStream(new
FileInputStream(new File(GestionTrabajadores.rutaCategorias)));
totalCategorias=entrada.readInt();
entrada.close();
pos=0;
//DataInputStream entrada=new DataInputStream(
//FileReader entrada=
// new FileReader(new File(GestionTrabajadores.rutaCategorias));
BufferedReader buffer=new BufferedReader(new FileReader(new File(GestionTrabajadores.rutaCategorias)));
System.out.println("El total de categorias es "+totalCategorias);

/*for(pos=0;((b=entrada.read())!=-1);pos++){
cadenaBytes[pos]=(byte)b;
}*/

//cadena=cadena.trim();
//String cadena=new String(cadenaBytes);
cadena=buffer.readLine();
cadena=cadena.trim();
buffer.close();
System.out.println(cadena.charAt(0));
System.out.println("La cdena a cargar es "+cadena);

for(int i=0;i<cadena.length() && categoriasIntroducidas<totalCategorias;i++){
if(cadena.charAt(i)!=' '){
categoria+=cadena.charAt(i);
pos=i;
}else{

//asignaCategoria(categoria);
categorias[0][categoriasIntroducidas]=categoria;
categoriasIntroducidas++;
System.out.println("Se deberia asignar "+categoria +" y se asigna " +
""+categorias[0][categoriasIntroducidas--]);
categoria="";
pos=i;
}
}
if(categoriasIntroducidas==totalCategorias){
categoriasIntroducidas=0;
cadena="";
}

for(int i=pos+1;i<cadena.length() && categoriasIntroducidas<totalCategorias;i++){
if(cadena.charAt(i)!=' '){
categoria+=cadena.charAt(i);
pos=i;
}else{

//asignaComplemento(categoria);
categorias[0][categoriasIntroducidas]=categoria;
categoriasIntroducidas++;
categoria="";
}
}
System.out.println("Se han cargado correctamente las categorias.");
}catch (Exception errorEntrada){
System.err.println("Ha habido un problema en el proceso de cargado de categorias profesionales.");
}
}


Creo que es muy lioso. Debe haber una forma mas facil. Un saludo y gracias.
  #2 (permalink)  
Antiguo 05/04/2008, 12:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: guardar y cargar un array de strings

¿Lo necesitas en texto para algo?
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 06/04/2008, 02:30
 
Fecha de Ingreso: abril-2008
Mensajes: 5
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: guardar y cargar un array de strings

Si. Se trata de un array donde se guardan las categorias profesionales de un trabajador de una empresa y es necesario que sea en texto para luego poder imprimirlo en pantalla.
Me es lo mismo si en disco duro se guarda en bytes o strings, el caso es luego poder recuperarlo y poder pasarlo por pantalla.
Gracias.
  #4 (permalink)  
Antiguo 06/04/2008, 05:13
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: guardar y cargar un array de strings

A eso me referia, si tenias que guardarlo como texto en el archivo o te daba igual. Por que si te da igual, lo mas "comodo" es usar un ObjectOutputStream (sobre un FileOutputStream) y guardar directamente el array, con writeObject, y luego leerlo con con un ObjectInputStream (sobre un FileInputStream) y readObject.
Así no te complicas transformando en lineas de texto ni nada.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 08/04/2008, 12:46
 
Fecha de Ingreso: abril-2008
Mensajes: 5
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: guardar y cargar un array de strings

OK. Probaré a ver que tal. Ya contaré resultados.
Mil gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:58.