Autor
|
Tema: Fichero De Datos POO. (Leído 3,345 veces)
|
rokacasterli
Desconectado
Mensajes: 4
|
Hola, buenas días, necesito saber si alguno de ustedes sabe, o tiene el código o alguna referencia que explique como introducir un los datos de los objetos desde un fichero, en este caso un .txt Me explico, mi intención es 'crear' dichos objetos a partir de dicho fichero .txt. En mi .txt tendré los parámetros de mi constructor principal algo como Pepe Viñuelas Garcia;29;pepe@gmail.com;7788928-X Pepe2 Viñuelas2 Garcia2;29;pepe2@gmail.com;7788929-X Pepe3 Viñuelas3 Garcia2;29;pepe3@gmail.com;7788930-X . .etc de forma que en un array de la clase ya definida 'Personas' con tamaño ya establecido, se introduzcan dichos datos. ¿Es posible realizar dicha tarea? Saludos
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Bueno, dudo que alguien te pueda ayudar si no especificas en qué lenguaje de programación estás trabajando.
Si no he entendido mal, tú tienes un archivo delmitado por comas (o CSV) y quieres hallar una forma de poder representar la información de cada linea del archivo mediante objetos.
Bien, una forma rudimentaria de hacerlo sería leer el archivo y partir cada linea individual usando el caracter delimitador, y de este modo obtener un Array con los campos que poder pasarle al constructor de un tipo. Una forma más sofisticada y óptima (según las circunstancias) podría ser mediante la serialización/deserialización de objetos (siempre que el lenguaje que estés utilizando provea esta funcionalidad), de esta forma podrías traducir/convertir el contenido de un archivo, a un tipo específico, y viceversa.
¡Saludos!
|
|
« Última modificación: 7 Mayo 2017, 15:26 pm por Eleкtro »
|
En línea
|
|
|
|
rokacasterli
Desconectado
Mensajes: 4
|
Si, es cierto perdón. Estoy trabajando con Java, JDK 1.7. ''Si no he entendido mal, tú tienes un archivo delmitado por comas (o CSV) y quieres hallar una forma de poder representar la información de cada linea del archivo mediante objetos.'' Así es correcto en concreto un tipo .txt en el de 'algún modo que desconozco', introducir dicho datos pero en un array. Para ser más concreto mi intención es hacer algo así pero con un array de objetos donde en vez de Productos, sean Productos[], pero no sé como hacerlo. Productos producto1; try{ entrada.readLine(); while((linea=entrada.readLine())!=null){ Denominación = str.nextToken(); CódigoÚnico =str.nextToken();} if(entrada!=null){ entrada.close(); } producto1=new Productos(Denominación,CódigoÚnico); System. out. println(producto1 ); } System. out. println("No exite el fichero indicado."); } System. out. println("Error en E/S"); ex.printStackTrace(); } }}
Saludos
|
|
|
En línea
|
|
|
|
cunian
Desconectado
Mensajes: 10
Sin lógica no hay paraíso.
|
Hola amigo, y si cargas todos los objetos del .txt a un contenedor. un Arraylist o un LinkedList. //SE CREA ARRAYLIST LinkedList<productos> lista_productos = new LinkedList<>(); try { entrada.readLine(); while ((linea = entrada.readLine()) != null) { Denominacion = str.nextToken(); CodigoUnico = str.nextToken(); //SE INSERTA UN OBJETO AL CONTENEDOR lista_productos.add(new productos(Denominacion, CodigoUnico)); } if (entrada != null) { entrada.close(); } System. out. println("No exite el fichero indicado."); System. out. println("Error en E/S"); ex.printStackTrace(); } }
|
|
« Última modificación: 7 Mayo 2017, 19:24 pm por cunian »
|
En línea
|
|
|
|
3n31ch
Desconectado
Mensajes: 445
Grandes conocimientos engendran grandes dudas
|
Entiendo que quieres algo como esto: ArrayList<Employee> employees = new ArrayList<>(); // ACA CREO EL ARRAY DE OBJETOS // INICIO: LEER FICHERO String path = "C:\\Users\\Nacho\\Desktop\\employees.txt"; // FIN: LEER FICHERO // INICIO: RECORRER FICHERO String[] attr ; // ACA SE GUARDARA EL ARRAY DE ATRIBUTOS while((line = br.readLine()) != null) { attr = line.split(";"); // ACA SE GENERA EL ARRAY DE ATRIBUTOS employees.add(new Employee(attr[0], attr[1])); // ACA SE CREA EL OBJETO } br.close(); // FIN: RECORRER FICHERO for(Employee employee : employees ) System. out. println(employee ); // ACA SE LEE EL ARRAY DE OBJETOS }
(Ojo, la ultima linea lee el objeto directamente, para eso hice un override de toString en Employee)Eso segun yo es la forma mas simple sin tener que acudir a clases poco comunes de java. Si vez lo unico que se usa es ArrayList, FileReader y BufferedReader. Otra forma seria usar Scanner: ArrayList<Employee> employees = new ArrayList<>(); // ACA CREO EL ARRAY DE OBJETOS Scanner scanner = new Scanner (new File("C:\\Users\\Nacho\\Desktop\\employees.txt"));// LEO FICHERO scanner.useDelimiter("\n"); // SEPARO FICHERO while(scanner.hasNext()) { // RECORRO FICHERO attr = scanner.next().split(";"); // GENERO ARREGLO DE ATRIBUTOS employees.add(new Employee(attr[0], attr[1])); // AÑADO OBJETO } for(Employee employee : employees ) System. out. println(employee ); // ACA SE LEE EL ARRAY DE OBJETOS }
|
|
« Última modificación: 7 Mayo 2017, 20:42 pm por 3n31ch »
|
En línea
|
|
|
|
rokacasterli
Desconectado
Mensajes: 4
|
Muchas gracias por la ayuda, puedes explicarme qué hace esta sintaxis for(Productos employee : employees ) System. out. println(employee );
Saludos!
|
|
|
En línea
|
|
|
|
3n31ch
Desconectado
Mensajes: 445
Grandes conocimientos engendran grandes dudas
|
Muchas gracias por la ayuda, puedes explicarme qué hace esta sintaxis for(Productos employee : employees ) System. out. println(employee );
Saludos! Eso es un foreach, recorre un arreglo uno por uno: Si tienes un arrayList de productos llamado: productos y quieres recorrerlo uno por uno haces lo siguiente: for( Producto producto : productos) { System.out.println(producto.getNombre()); } El azul seria el Tipo de ArrayList o mas bien la Clase de los objetos que contiene. El verde seria la variable temporal que tendra cada producto cuando se itere sobre el El rojo es la lista de productos sobre la cual iteras
|
|
|
En línea
|
|
|
|
rokacasterli
Desconectado
Mensajes: 4
|
Vale, muchas gracias.
Otra duda, para convertir un booleano a String, de manera que desde un archivo pueda leer dicho atributo boolean, ¿cómo es la mejor manera de recoger dicha información?
|
|
|
En línea
|
|
|
|
3n31ch
Desconectado
Mensajes: 445
Grandes conocimientos engendran grandes dudas
|
ponlo como 1 o como 0, si es 0 es false, si es 1 es true. Luego haces lo siguiente: boolean bool = input.equals("1");
Seguramente existen mas formas, pero esa se me ocurre por le momento.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
comparar y eliminar datos de un fichero
PHP
|
Roc668
|
1
|
3,304
|
13 Diciembre 2009, 17:43 pm
por Maox
|
|
|
Introducir datos de un fichero en una tabla
Programación C/C++
|
HIPOCROFILO
|
4
|
3,667
|
16 Octubre 2010, 15:29 pm
por do-while
|
|
|
Guardar datos en Un Fichero
Programación C/C++
|
mapers
|
1
|
2,448
|
5 Abril 2011, 23:22 pm
por Akai
|
|
|
Almacenar datos de un fichero en una estructura
Programación C/C++
|
moralescmj
|
4
|
2,613
|
26 Enero 2014, 15:30 pm
por moralescmj
|
|
|
MOVIDO: Fichero De Datos POO.
Programación General
|
Eleкtro
|
0
|
1,885
|
7 Mayo 2017, 16:26 pm
por Eleкtro
|
|