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

Ayuda con arreglos y archivos

Estas en el tema de Ayuda con arreglos y archivos en el foro de Java en Foros del Web. Hola gente aquí molestando una vez mas, mas que ayuda escribo para solicitar una orientación, tengo que realizar una aplicación que sea algo parecido a ...
  #1 (permalink)  
Antiguo 13/02/2011, 16:10
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Ayuda con arreglos y archivos

Hola gente aquí molestando una vez mas, mas que ayuda escribo para solicitar una orientación, tengo que realizar una aplicación que sea algo parecido a una factura donde yo tengo que manejar 3 opciones, estas opciones yo las tengo que manejar en arreglos para evitar perder esta información y cuando lo requiera con un botón guardar esa información en un archivo, yo he manejado guardar archivos con dataoutputstream y con file writter pero nunca he manejado información en arreglos y directmente mandar esa información a un archivo agradeceria su ayuda gracias
  #2 (permalink)  
Antiguo 14/02/2011, 01:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Ayuda con arreglos y archivos

No entiendo muy bien la pregunta, ¿te refieres a recuperar los datos del array para guardarlos? int[] array = new int[]{2,0,3,4,1}

array[2] --> 3
  #3 (permalink)  
Antiguo 14/02/2011, 01:58
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Ayuda con arreglos y archivos

Tendrías que recorrer el array e ir guardando los elementos en el archivo uno a uno de forma secuencial.

Para recuperarlos, igual pero al revés, vas leyendo elementos del fichero y metiéndolos en el array. El posible problema es que puedes no saber de qué tamaño es el array hasta que no acabes de leer el fichero, por ello puedes usar la clase File y su método length() que te dice el tamaño del fichero. Si todos los elementos del array son del mismo tamaño, es cuestión de dividir length()/tamano para saber el numero de elementos que hay en el fichero.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 14/02/2011, 03:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Ayuda con arreglos y archivos

Si leyendo la pregunta que hice suena confusa haber si me puedo explicar mejor, la idea es que en lugar de grabar directamente en un archivo lo que yo ingreso por teclado, esta informacion se valla a un arreglo y la informacion que esta guardada en el arreglo vaciarla en un archivo con el fin de no perder informacion que esta se guarde en memoria antes de grabarse en un archivo les dejo un codigo de lo que mas o menos he intentado pero no funciona siento que la logica que estoy usando no es buena haber si me puden ayudar

input dis = new input (new input("Factura:txt"));
for{
dis.writedouble(precio[]);
dis.writechar("/t");
dis.writeint(unidad[]);
dis.writechar("/t");
dis.writechars(desc[]);
dis.writechar("/n");
}
dis.close();

for {
precio =dis.readDouble();
dis.readchar();
unidad=dis.readint();
dis.readchar();
des=dis.readline();
}
  #5 (permalink)  
Antiguo 14/02/2011, 06:15
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: Ayuda con arreglos y archivos

//Primero hay que abrir el stream para poder leer el teclado para ello se hace.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//Luego creamos el array o tabla o arreglo donde queremos guardar la informacion.
try{
String[] arrayEntrada = new String[10];
boolean ok = true; // se puede poner una cadena de control para indicar que no se va a seguir escribiendo desde el teclado

for (int i=0; i<arrayEntrada.length && ok; i++ )
{
String linea = br.readLine();
if (linea.equals("fin"))
{
ok = false;
}else
{
arrayEntrada[i]= linea;
}
}

//Creamos el fichero de salida y lo abrimos para escritura.
String sFicheroEscritura = "Factura.txt";
File fichero = new File(sFichero);
BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero));
//se recorre el array y se inserta en el fichero
for (int i=0;i<arrayEntrada.length)
{
bw.write(arrayEntrada[i]+"\n");
}
bw.close();//al final se cierra el fichero para guardar los cambios.
}catch (Exception e){e.printStackTrace();}
  #6 (permalink)  
Antiguo 14/02/2011, 15:43
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Ayuda con arreglos y archivos

Gracias por su ayuda pero he quedado con algunas dudas tendre que leer mas acerca de arreglos por que aun no los comprendo muy bien saludos
  #7 (permalink)  
Antiguo 15/02/2011, 01:28
 
Fecha de Ingreso: febrero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Ayuda con arreglos y archivos

Para que no desaparezca de memoria no necesitas almacenar la información en un array, puedes almacenar el contenido del fichero en un String, mientras algún objeto tenga relación con ese String estará vivo y el recolector de basura no lo pisará... Deberías leer el teclado y almacenarlo en un String (O alguna clase que te resulte cómoda a tal efecto) y cuando quieras, lo escribes al disco.
  #8 (permalink)  
Antiguo 15/02/2011, 02:24
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Ayuda con arreglos y archivos

Hola carlos gracias por contestar, sobre lo que tu me dices la verdad no entiendo eso de guardar la informacion en un string disculpa pero apenas voy empezando en esto de programacion y java hay ciertas cosas que aun no conosco o no he tenido oportunidad de leerla agradeceria si me explicaras gracias
  #9 (permalink)  
Antiguo 15/02/2011, 02:59
 
Fecha de Ingreso: febrero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Ayuda con arreglos y archivos

Mira, como bien sabes, un array es una colección para almacenar valores de un mismo tipo, así, en otros lenguajes la clase String no es más que un array de caracteres, es decir String "hola" == char[] {h,o,l,a}. Ahora bien, en Java un String es una clase más con operaciones definidas, no es un array de chars, sino una clase que hereda de CharSequence (Esto es un poco más lioso, pero para que lo sepas...) Entonces, si tú quieres leer linea a linea el teclado y al final guardar todo lo leido en un fichero, puedes hacerlo mediante la clase String, un pequeño ejemplo a ver si es realmente lo que quieres (En el ejemplo simplifico todo lo de leer de teclado en la funcion leerTeclado que devuelve un objeto String):

String miTexto = "";

while ( continuar == true){
String ultimaLinea = leerTeclado();
if (!ultimaLinea.equals("FIN DEL TEXTO");
miTexto += "\n" + ultimaLinea;
else
continuar == false;
}

Al finalizar el bucle tendrías en la variable miTexto un texto con retornos de carro al final de cada linea que hayas introducido y solo tendrías que guardarlo en el fichero.

Date cuenta que los ejemplos sencillos sirven para eso, para ilustrar y entender el funcionamiento de ciertas cosas, pero no son, en absoluto, la forma correcta de hacer las cosas...

Un saludo!
  #10 (permalink)  
Antiguo 16/02/2011, 00:25
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Ayuda con arreglos y archivos

Bueno por fin pude guardar los datos del arreglo en un archivo, ahora tengo una duda yo ya tengo guardado el archivo con los datos que tenia el arreglo, ahora lo que tengo que hacer es mostrar esa informacion en textfield pero el frame debe de tener 2 botones de uno que diga siguiente y anterior de tal manera de que cuando yo le de siguiente se vea el dato que sigue y se le doy anterior me regrese al dato que yo ya habia visto esto lo podria hacer con un for recorriendo el archivo grabado o cual seria la mejor opcion de hacer esto y muchas gracias a todos por su ayuda

Etiquetas: arreglos
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 00:03.