Autor
|
Tema: Escribir y leer de un fichero con objetos. (Leído 6,528 veces)
|
Fryuio
Desconectado
Mensajes: 27
|
Hola muy buenas, no sé como podría hacer un código sencillo que me lea y escriba en un fichero objetos. Yo tengo una cosa así: private int numero; public Personas (String nombre, int numero ){ this.nombre=nombre; this.numero=numero; } return nombre; } public int getnumero() { return numero; }
Es el cacho del objeto que he creado. Bueno el caso, es que me estoy volviendo loco porque no sé como podría hacer que guarde el objeto en un fichero, pero claro, no 1 si no varios objetos de ese tipo, introduciendo por teclado esos valores. Ejemplo: Juan, 1234 Antonio, 3456 .....etc Y claro, no sé como podría hacer que al meter los parámetros por teclado, me lo escriba en el fichero, y luego me pida el 2º objeto, 3º, etc...Obviamente también me interesa que me imprima por pantalla cuando se acabe de meter datos, los datos de todas las personas. Me sería de gran ayuda, un saludo.
|
|
|
En línea
|
|
|
|
3n31ch
Desconectado
Mensajes: 445
Grandes conocimientos engendran grandes dudas
|
Supongo que ya sabes como agregar datos a un fichero (abrirlo y agregar una nueva linea al final).? En dicho caso, te recomiendo que veas el metodo que poseen todas las clases que heredan de la clase Object (osea todas...) El cual se llama .toString(). Puedes buscar sobre eso en la API. (Lamento no poner codigo... Antes lo hacia pero he aprendido que la mejor aprender algo es haciendolo tu mismo). Cualquier duda me dices. ------------------- Por cierto. Es mejor que le pongas a tu clase "Persona" no "Personas". Singular siempre || Existe excepciónes que puedes ver en el mismo JDK. Pero en la mayoria de los casos seran sigunlares
|
|
« Última modificación: 22 Abril 2017, 13:26 pm por 3n31ch »
|
En línea
|
|
|
|
Fryuio
Desconectado
Mensajes: 27
|
Supongo que ya sabes como agregar datos a un fichero (abrirlo y agregar una nueva linea al final).? En dicho caso, te recomiendo que veas el metodo que poseen todas las clases que heredan de la clase Object (osea todas...) El cual se llama .toString(). Puedes buscar sobre eso en la API. (Lamento no poner codigo... Antes lo hacia pero he aprendido que la mejor aprender algo es haciendolo tu mismo). Cualquier duda me dices. ------------------- Por cierto. Es mejor que le pongas a tu clase "Persona" no "Personas". Singular siempre || Existe excepciónes que puedes ver en el mismo JDK. Pero en la mayoria de los casos seran sigunlares Sí, sé leer y escribir en el fichero, lo que me pasa es que no sé como hacer para escribirlos 1 a 1 y que me los vaya pidiendo y guardando. Sé que con un bucle for lo hago, pero no sé muy bien como enfocarlo jaja.
|
|
|
En línea
|
|
|
|
3n31ch
Desconectado
Mensajes: 445
Grandes conocimientos engendran grandes dudas
|
ok, un ciclo for no es el indicado. Veras en Java (Como en muchos lenguajes) existen tres tipos de ciclos basicos (omitiendo variaciones como el foreach): El primero ya lo conoces (for): for(int i = 0;i<10;i++) { // HACER ALGO 10 VECES }
El segundo es el ciclo while: int i = 0; while(i<10) { // HACER ALGO 10 VECES i++; }
En el caso anterior se repite lo que tu quieras mientras se cumpla la condicion (es como un if, pero para ciclos) El tercero es el do-while: int i = 0; do { // HACER ALGO 11 VECES i++; } while(i<10);
Es similar al while solo que verifica si se cumple la condicion despues de ejecutar el codigo (por tanto siempre entrara al menos una vez) ---- Puedes averiguar mas de esto en google ---- Ok, para no complicarnos con el do-while (que seria lo mas indicado) lo hacemos solo con el while: while(true) { /// preguntar si quiere el usuario ingresar una persona if(si no quiere) break; // con esto sales del ciclo. // por tanto si llega a este punto quiere decir que si queria. // preguntar los datos de la persona, agregarlos al fichero y volver al inicio. }
No lo hice con codigo para ver si lo logras maquinar tu solo. Cualquier duda dime!
|
|
« Última modificación: 22 Abril 2017, 14:12 pm por 3n31ch »
|
En línea
|
|
|
|
Fryuio
Desconectado
Mensajes: 27
|
ok, un ciclo for no es el indicado. Veras en Java (Como en muchos lenguajes) existen tres tipos de ciclos basicos (omitiendo variaciones como el foreach): El primero ya lo conoces (for): for(int i = 0;i<10;i++) { // HACER ALGO 10 VECES }
El segundo es el ciclo while: int i = 0; while(i<10) { // HACER ALGO 10 VECES i++; }
En el caso anterior se repite lo que tu quieras mientras se cumpla la condicion (es como un if, pero para ciclos) El tercero es el do-while: int i = 0; do { // HACER ALGO 11 VECES i++; } while(i<10);
Es similar al while solo que verifica si se cumple la condicion despues de ejecutar el codigo (por tanto siempre entrara al menos una vez) ---- Puedes averiguar mas de esto en google ---- Ok, para no complicarnos con el do-while (que seria lo mas indicado) lo hacemos solo con el while: while(true) { /// preguntar si quiere el usuario ingresar una persona if(si no quiere) break; // con esto sales del ciclo. // por tanto si llega a este punto quiere decir que si queria. // preguntar los datos de la persona, agregarlos al fichero y volver al inicio. }
No lo hice con codigo para ver si lo logras maquinar tu solo. Cualquier duda dime! Muchas gracias por todos los detalles. Pero a ver creo que me he expresado mal jaja. Mi problema no está en meter los datos jaja, mi problema está en que no soy capaz de guardar los datos en el fichero jaja
|
|
|
En línea
|
|
|
|
3n31ch
Desconectado
Mensajes: 445
Grandes conocimientos engendran grandes dudas
|
Quizas esto ayude: Scanner scanner = new Scanner (System. in); while(true){ System. out. print("exit para salir, cualquier cosa para agregar:"); input = scanner.nextLine(); if(input.equals("exit")) break; bw.write(input+"\n"); } bw.close(); }
|
|
|
En línea
|
|
|
|
Serapis
|
Aquí dices: Sí, sé leer y escribir en el fichero...
y aquí te desdices: ... mi problema está en que no soy capaz de guardar los datos en el fichero jaja
El problema básico es que quieres correr antes de aprender a andar, cuando aún estás gateando. Aprende a hacer las cosas en orden... no tiene sentido explicar a alguien como construir un avión, si no sabe construir primero una bici. Te falta lógica... dilucidar qué pasos y en qué orden se deben seguir para lograr un objetivo y luego que tengas eso claro, debes ver que partes de lenguaje realizan cada acción. Así, primero necesitas aprender más sobre los bucles, las condiciones, mostrar mensajes al usuario y pedirle datos, convertir datos de un tipo a otro, serializarlos... y al final aprender sobre distintos métodos de guardar datos (de texto, binarios, etc...). Te falta base, estudia.
|
|
|
En línea
|
|
|
|
Fryuio
Desconectado
Mensajes: 27
|
Quizas esto ayude: Scanner scanner = new Scanner (System. in); while(true){ System. out. print("exit para salir, cualquier cosa para agregar:"); input = scanner.nextLine(); if(input.equals("exit")) break; bw.write(input+"\n"); } bw.close(); }
Muchas gracias, pero no es mejor para objetos usar el ObjectOutputStream, para hacer escrituras de objetos?
|
|
|
En línea
|
|
|
|
3n31ch
Desconectado
Mensajes: 445
Grandes conocimientos engendran grandes dudas
|
Muchas gracias, pero no es mejor para objetos usar el ObjectOutputStream, para hacer escrituras de objetos?
@_@... Ya no entiendo tu pregunta. Basicamente quieres que te explique cada detalle del algoritmo?. Lo que puse ahi fue un ejemplo para escribir en un fichero un simple String (Luego tu lo modificas y aplicas para lo que necesites). --------------- Estoy deacuerdo con lo que dice NEBIRE. Me da la sensacion de que no tienes mucha idea de lo que estas haciendo. De igual forma te dejo este link: http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/archivos/objetos.htmRecuerda que como primera instancia tienes que buscar en google, luego en el buscador del foro y luego preguntar.
|
|
« Última modificación: 22 Abril 2017, 15:18 pm por 3n31ch »
|
En línea
|
|
|
|
Fryuio
Desconectado
Mensajes: 27
|
Aquí dices:y aquí te desdices: El problema básico es que quieres correr antes de aprender a andar, cuando aún estás gateando. Aprende a hacer las cosas en orden... no tiene sentido explicar a alguien como construir un avión, si no sabe construir primero una bici. Te falta lógica... dilucidar qué pasos y en qué orden se deben seguir para lograr un objetivo y luego que tengas eso claro, debes ver que partes de lenguaje realizan cada acción.
Así, primero necesitas aprender más sobre los bucles, las condiciones, mostrar mensajes al usuario y pedirle datos, convertir datos de un tipo a otro, serializarlos... y al final aprender sobre distintos métodos de guardar datos (de texto, binarios, etc...). Te falta base, estudia.
Qué? Vamos a ver, yo sé lo que hay que usar para leer y escribir en un fichero, pero para un caso concreto no sé enfocarlo para que funcione. Mi duda simplemente era como escribir un array de un objeto de 2 parametros. Porque saber, sé hacerlos uno a uno y que se vayan escribiendo, pero claro eso no es nada óptimo si por ejemplo hay que meter 200 valores. Simplemente quería saber como hacerlo de manera óptima. Mi intención no es que nadie me lo de hecho, solo quería una orientación, nada más.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
escribir hora y fecha en un fichero
« 1 2 »
PHP
|
pana88
|
13
|
11,780
|
19 Marzo 2008, 13:52 pm
por Noxors
|
|
|
Como leer/Escribir un fichero txt en C# sin saber la ruta
.NET (C#, VB.NET, ASP)
|
txitxo0
|
3
|
10,436
|
13 Enero 2009, 13:23 pm
por MANULOMM
|
|
|
escribir fichero txt continuamente
Programación C/C++
|
raquelsg88
|
1
|
2,521
|
12 Julio 2013, 10:58 am
por eferion
|
|
|
COdigo para buscar leer escribir fichero c++
Programación C/C++
|
proxiom
|
1
|
3,077
|
9 Abril 2015, 13:56 pm
por ivancea96
|
|
|
Escribir y Leer objetos en un solo fichero
Java
|
HardC0d3
|
0
|
2,575
|
12 Agosto 2017, 07:25 am
por HardC0d3
|
|