SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
TALLER
LOGICA DE PROGRAMACION
Carga de datos con Java
Msc.ing.Jose Fabian Diaz Silva
@josefabiandiaz
Muchos programas requieren un tipo de interacción diferente con el usuario que no involucre
la escritura de una serie de parámetros de entrada por medio del teclado. Un ejemplo de este
caso es la carga de datos empleando un archivo, el cual puede contener un gran volumen de
datos y permite gracias a ellos realizar simulaciones más precisas.
En este taller se realizar un ejercicio que involucre la carga de un archivo plano (txt) , una clase
principal y una clase auxiliar que generara los objetos del ejercicio.
1-Creacion de proyecto y clases
Lo primero que es necesario realizar es crear un proyecto que almacene el taller que se
realizara.
File> New >Java Project
Es necesario darle el nombre de “LogicadeProgramacion” al proyecto(en la ventana que
aparece).
Cuando el proyecto este creado, será necesario crear una clase para realizar la ejecución de las
acciones que se esperan del taller.
Para ello dar clic derecho sobre el paquete por defecto que aparece dentro del proyecto y
seleccionar la creación de una nueva clase, así como lo indica la imagen.
Es importante indicar en la ventana que aparece para ingresar el nombre que la clase se podrá
ejecutar, para lo cual requiere un método main. La clase llevara el nombre “Bigcity”.
Ya con la clase principal creada es necesario iniciar con la construcción de la clase auxiliar la
cual se llamara “CiudadA”. (se debe seguir el mismo proceso que se empleo para crear la clase
principal, pero sin la presencia del método main).
Atributos y métodos
La clase “CiudadA” tiene 4 atributos, el identificador que permite manejar cada objeto con una
única identidad, un nombre que facilita su interpretación, un atributo que corresponde a la
población que tiene y el nivel de desarrollo de la ciudad especifica(entre 1 y 5).
int identificador;
String nombre;
int poblacion;
int nivel;
Sera necesario crear un constructor para poder iniciar con valores los objetos que se generaran
a partir de la clase, pero Eclipse permite acelerar este desarrollo por medio de una
herramienta que se encuentra dentro de sus opciones. Para generar automáticamente este
código realice la acción que indica el grafico y señale los atributos que quiere que sean
incluidos (se recomienda seleccionar todos).
Al finalizar la ejecución se generara el siguiente código.
public CiudadA(int identificador, String nombre, int poblacion, int nivel) {
super();
this.identificador = identificador;
this.nombre = nombre;
this.poblacion = poblacion;
this.nivel = nivel;
}
Posterior a la escritura del constructor se recomienda crear los métodos que permiten
interactuar con los atributos de la clase, tanto para modificar como para retornar sus valores.
Esto se denomina crear los métodos “Beans”. Eclipse permite igualmente generar
automáticamente este código.
Después de ejecutar esta acción se consigue este código.
public int getIdentificador() {
return identificador;
}
public void setIdentificador(int identificador) {
this.identificador = identificador;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getPoblacion() {
return poblacion;
}
public void setPoblacion(int poblacion) {
this.poblacion = poblacion;
}
public int getNivel() {
return nivel;
}
public void setNivel(int nivel) {
this.nivel = nivel;
}
2-Trabajando desde la clase principal
Estando en la clase principal es necesario prepararla para realizar la lectura de un archivo
plano.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
Primero se debe importar el código para la lectura de archivos, esto se hace por medio de 3
librerías. La primera hace referencia a un buffer el cual va almacenando las líneas que se
encuentran en el archivo y es el que facilita el trabajo con los datos. La segunda (FileReader)es
requerida para crear un objeto que habilite la lectura de un archivo. La ultima (IOException) se
emplea para capturar los posibles errores que se generen en el proceso de lectura del archivo.
Importante: La inclusión de la librería IOException hace necesario la modificación del método
main para que cobije la ejecución de la clase y capture posibles errores de lectura.
public static void main(String[] args) throws IOException{
3-Invocando el archivo plano
En la línea 12, se crea una variable “líneas” que será la variable que almacenara la información
línea a línea que se va leyendo del archivo que se carga.
En la línea 14, se declara un vector llamado VectorFinal, el cual se empleara para almacenar los
datos contenidos en las líneas leídas del archivo plano.
FileReader de la línea 15, es una clase que permite crear una instancia de un archivo, en esta
oportunidad se crea la instancia fundamentada en el archivo “ciudadesC.txt”. Ya con la
instancia creada “Fr”, se realiza la generación de un buffer(línea 16) el cual permite la carga de
los datos del archivo.
Lo primero que se realiza es calcular el número de líneas que se tiene al interior del
archivo(nlineas). Se emplea el método “readLine” al interior de un While y asi se va pasando
línea a línea y contabilizando. Para conocer el número de líneas del archivo se imprime en la
línea 24 el valor de la cuenta. Por último se cierra el archivo en la línea 25.
Posterior a la cuenta del número de líneas que tiene el archivo se inicia el verdadero proceso
del mismo, puesto se realizara la creación de los objetos a partir de cada una de las líneas. En
este punto es importante mencionar que el archivo plano almacena un gran número de datos
de ciudades que coinciden con los atributos de la clase auxiliar que se creó.
En la línea 27, se crea un vector de “CiudadA” que permite almacenar los objetos que se
crearan por cada línea del archivo (el número de líneas que se calculo con anterioridad es de
utilidad para definir el tamaño que tendrá el vector). Con la línea 28 y 29 se realiza la misma
operación de apertura y creación de buffer que se explico en la primera parte.
El while se encuentra en la línea 30 y se mantiene ejecutándose mientras el archivo tenga
líneas que leer. Al interior de este while y en la línea 32, se realiza la separación de la línea
leída en un vector(vectorfinal), por medio de un método llamado SPLIT que utiliza un carácter
de separación para determinar cómo separar las líneas(cada línea del archivo plano tiene la
información de una ciudad y cada uno de sus atributos tienen un punto y coma separándolos,
por ello este carácter se emplea dentro del método).
En la línea 33 se crea un objeto llamado “C” que es de tipo CiudadA, es importante observar
que en esta línea se le pasan 4 parámetros al constructor de la clase. Los parámetros son
tomados del “vectorfinal” que se creó a partir de la línea leída(cada parámetro corresponde a
una posición del vector iniciando desde cero y finalizando en 3, aunque no se aprecia en la
imagen). Como algunos de los datos esperados son de tipo entero y al leer se asume que
todos son String es necesario emplear el método “Integer.parseInt()” que toma una cadena y
la transforma al valor entero.
Ya con el objeto “C” creado es necesario almacenarlo en una posición del vector , lo cual se
hace en la línea 34 del ejercicio. Finalizado el proceso en la línea 37 y 38 se cierra tanto el
buffer como el archivo.
Con el vector “CA” lleno ya solo es necesario recorrerlo y con la línea 40 y 41 se realiza este
recorrido, imprimiendo únicamente el nombre de la ciudad.
Importante:
Cuando un objeto queda almacenando dentro de un vector, no es necesario extraerlo para
invocar sus métodos, como se evidencia en la línea 41 y el método “getNombre”.
Clase completa
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Bigcity {
/**
* @param args
*/
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
String lineas=""; //se declara vacia al inicio;
String vectorFinal[];
FileReader Fr=new FileReader("C://ciudadesC.txt");
BufferedReader br=new BufferedReader(Fr);
int nlineas=0;
int i=0;
while((lineas=br.readLine())!=null)
{
nlineas++;
}
System.out.println(nlineas);
Fr.close();
CiudadA [] CA=new CiudadA[nlineas];
Fr=new FileReader("C://ciudadesC.txt");
br=new BufferedReader(Fr);
while((lineas=br.readLine())!=null)
{
vectorFinal=lineas.split(";");
CiudadA C=new
CiudadA(Integer.parseInt(vectorFinal[0]),vectorFinal[1],Integer.parseI
nt(vectorFinal[2]),Integer.parseInt(vectorFinal[3]));
CA[i]=C;
i++;
}
br.close();
Fr.close();
for(int y=0;y<nlineas;y++)
System.out.println(CA[y].getNombre());
}
}
Clase auxiliar
public class CiudadA {
int identificador;
String nombre;
int poblacion;
int nivel;
public CiudadA(int identificador, String nombre, int poblacion, int
nivel) {
super();
this.identificador = identificador;
this.nombre = nombre;
this.poblacion = poblacion;
this.nivel = nivel;
}
public int getIdentificador() {
return identificador;
}
public void setIdentificador(int identificador) {
this.identificador = identificador;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getPoblacion() {
return poblacion;
}
public void setPoblacion(int poblacion) {
this.poblacion = poblacion;
}
public int getNivel() {
return nivel;
}
public void setNivel(int nivel) {
this.nivel = nivel;
}
}

Contenu connexe

Tendances (16)

Actividad dll
Actividad dllActividad dll
Actividad dll
 
Practica 1 html_basico
Practica 1 html_basicoPractica 1 html_basico
Practica 1 html_basico
 
Tipos de datos entrada y salida
Tipos de datos entrada y salidaTipos de datos entrada y salida
Tipos de datos entrada y salida
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Mapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones ParametrizadasMapas y Diccionarios - Colecciones Parametrizadas
Mapas y Diccionarios - Colecciones Parametrizadas
 
Clases
ClasesClases
Clases
 
Matlab2
Matlab2Matlab2
Matlab2
 
Utilización de la clase math
Utilización de la clase mathUtilización de la clase math
Utilización de la clase math
 
Diapositivas matlab
Diapositivas matlabDiapositivas matlab
Diapositivas matlab
 
Tema 15 aplicaciones de dos capas por gio
Tema 15   aplicaciones de dos capas por gioTema 15   aplicaciones de dos capas por gio
Tema 15 aplicaciones de dos capas por gio
 
Tutorial consumir DLL C++ en C#
Tutorial consumir DLL C++ en C#Tutorial consumir DLL C++ en C#
Tutorial consumir DLL C++ en C#
 
Nuevo Manual de Gambas v2 [14-oct-2010]
Nuevo Manual de Gambas v2 [14-oct-2010]Nuevo Manual de Gambas v2 [14-oct-2010]
Nuevo Manual de Gambas v2 [14-oct-2010]
 
Java stream
Java streamJava stream
Java stream
 

En vedette

Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.guestdf1874
 
Programas en java script
Programas en java scriptProgramas en java script
Programas en java scriptlizmariej3
 
Configuracion variables de entorno para java
Configuracion variables de entorno para javaConfiguracion variables de entorno para java
Configuracion variables de entorno para javaKarla Ordoñez
 
Programas de consola en java con net beans por gio
Programas de consola en java con net beans por gioProgramas de consola en java con net beans por gio
Programas de consola en java con net beans por gioRobert Wolf
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoJuan Carlos Espinoza
 
C3 las clases en java v2
C3 las clases en java v2C3 las clases en java v2
C3 las clases en java v2Mariano Galvez
 
Manual de codificación de clases básicas en java
Manual de codificación de clases básicas en javaManual de codificación de clases básicas en java
Manual de codificación de clases básicas en javaalfonso_huitron
 
Manual descriptivo de clases de puestos docentes
Manual descriptivo de clases de puestos docentesManual descriptivo de clases de puestos docentes
Manual descriptivo de clases de puestos docentesKa Miranda
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaNaimFuentes
 
Java Lenguaje de programación Orientado a Objetos
Java Lenguaje de programación Orientado a ObjetosJava Lenguaje de programación Orientado a Objetos
Java Lenguaje de programación Orientado a ObjetosAida Hernández
 
Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Ronald Cuello
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCIgnacio Aular Reyes
 

En vedette (20)

Leccion 1 Java
Leccion 1 JavaLeccion 1 Java
Leccion 1 Java
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.
 
Programas en java script
Programas en java scriptProgramas en java script
Programas en java script
 
Tutorial java
Tutorial javaTutorial java
Tutorial java
 
Yei32
Yei32Yei32
Yei32
 
Configuracion variables de entorno para java
Configuracion variables de entorno para javaConfiguracion variables de entorno para java
Configuracion variables de entorno para java
 
Ejercicios en java
Ejercicios en javaEjercicios en java
Ejercicios en java
 
Programas de consola en java con net beans por gio
Programas de consola en java con net beans por gioProgramas de consola en java con net beans por gio
Programas de consola en java con net beans por gio
 
Clases en java
Clases en javaClases en java
Clases en java
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
C3 las clases en java v2
C3 las clases en java v2C3 las clases en java v2
C3 las clases en java v2
 
Manual de codificación de clases básicas en java
Manual de codificación de clases básicas en javaManual de codificación de clases básicas en java
Manual de codificación de clases básicas en java
 
FPJUCE - Capitulo1
FPJUCE - Capitulo1FPJUCE - Capitulo1
FPJUCE - Capitulo1
 
Manual descriptivo de clases de puestos docentes
Manual descriptivo de clases de puestos docentesManual descriptivo de clases de puestos docentes
Manual descriptivo de clases de puestos docentes
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Java Lenguaje de programación Orientado a Objetos
Java Lenguaje de programación Orientado a ObjetosJava Lenguaje de programación Orientado a Objetos
Java Lenguaje de programación Orientado a Objetos
 
5.manejo de excepciones
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
 
Java Persistence Api (Jpa)
Java Persistence Api (Jpa)Java Persistence Api (Jpa)
Java Persistence Api (Jpa)
 
manual java
manual javamanual java
manual java
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVC
 

Similaire à Taller carga datos + JAVA

Similaire à Taller carga datos + JAVA (20)

Javascrip reynaldo gil
Javascrip reynaldo gilJavascrip reynaldo gil
Javascrip reynaldo gil
 
Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Java
JavaJava
Java
 
Cplus
CplusCplus
Cplus
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Computación 3
Computación 3Computación 3
Computación 3
 
Trabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IITrabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica II
 
Compilador - Área de trapecio
Compilador - Área de trapecioCompilador - Área de trapecio
Compilador - Área de trapecio
 
Fun consola guia_01
Fun consola guia_01Fun consola guia_01
Fun consola guia_01
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Computación 3 sb04003 2013
Computación 3 sb04003 2013Computación 3 sb04003 2013
Computación 3 sb04003 2013
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
 
Bibliotecas de-c
Bibliotecas de-cBibliotecas de-c
Bibliotecas de-c
 
Java class library
Java class libraryJava class library
Java class library
 
No numerica ii
No numerica iiNo numerica ii
No numerica ii
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
 
Metodos de entrada y Salida
Metodos de entrada y SalidaMetodos de entrada y Salida
Metodos de entrada y Salida
 

Plus de Jose Diaz Silva

Mantenimiento de sistemas de información - Conceptos Avanzados
Mantenimiento de sistemas de información   - Conceptos AvanzadosMantenimiento de sistemas de información   - Conceptos Avanzados
Mantenimiento de sistemas de información - Conceptos AvanzadosJose Diaz Silva
 
Caracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosCaracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosJose Diaz Silva
 
Actividad ssh final - Ubuntu
Actividad ssh final - UbuntuActividad ssh final - Ubuntu
Actividad ssh final - UbuntuJose Diaz Silva
 
Problemas en pruebas de implantacion
Problemas en pruebas de implantacionProblemas en pruebas de implantacion
Problemas en pruebas de implantacionJose Diaz Silva
 
Mother board tarjeta madre - elementos varios
Mother board   tarjeta madre - elementos variosMother board   tarjeta madre - elementos varios
Mother board tarjeta madre - elementos variosJose Diaz Silva
 
Ciclos de vida orientados a objetos
Ciclos de vida orientados a objetosCiclos de vida orientados a objetos
Ciclos de vida orientados a objetosJose Diaz Silva
 
Pruebas de implantación del Software
Pruebas de implantación del SoftwarePruebas de implantación del Software
Pruebas de implantación del SoftwareJose Diaz Silva
 
SSH en Ubuntu - Transferencia Segura
SSH en Ubuntu - Transferencia SeguraSSH en Ubuntu - Transferencia Segura
SSH en Ubuntu - Transferencia SeguraJose Diaz Silva
 
Metodologías ágiles para el desarrollo de software - XP
Metodologías ágiles para el desarrollo de software - XPMetodologías ágiles para el desarrollo de software - XP
Metodologías ágiles para el desarrollo de software - XPJose Diaz Silva
 
Capacitacion implantacion de Software
Capacitacion implantacion de SoftwareCapacitacion implantacion de Software
Capacitacion implantacion de SoftwareJose Diaz Silva
 
Programar tareas crontab en Ubuntu
Programar tareas  crontab en UbuntuProgramar tareas  crontab en Ubuntu
Programar tareas crontab en UbuntuJose Diaz Silva
 
Errores y fracasos en la implantación de Software
Errores y fracasos en la implantación de SoftwareErrores y fracasos en la implantación de Software
Errores y fracasos en la implantación de SoftwareJose Diaz Silva
 
Tipos de memoria del computador - Compendio
Tipos de memoria del computador - CompendioTipos de memoria del computador - Compendio
Tipos de memoria del computador - CompendioJose Diaz Silva
 
Llenado de combobox vs2010 y oracle xe
Llenado de combobox vs2010 y oracle xeLlenado de combobox vs2010 y oracle xe
Llenado de combobox vs2010 y oracle xeJose Diaz Silva
 
Sistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - CompendioSistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - CompendioJose Diaz Silva
 
Puertos de un computador - Compendio
Puertos de un computador - CompendioPuertos de un computador - Compendio
Puertos de un computador - CompendioJose Diaz Silva
 
Metricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionMetricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionJose Diaz Silva
 
Modelo de diseño - conceptos finales
Modelo de diseño  - conceptos finalesModelo de diseño  - conceptos finales
Modelo de diseño - conceptos finalesJose Diaz Silva
 

Plus de Jose Diaz Silva (20)

Mantenimiento de sistemas de información - Conceptos Avanzados
Mantenimiento de sistemas de información   - Conceptos AvanzadosMantenimiento de sistemas de información   - Conceptos Avanzados
Mantenimiento de sistemas de información - Conceptos Avanzados
 
Caracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosCaracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetos
 
Modding PC
Modding PCModding PC
Modding PC
 
Actividad ssh final - Ubuntu
Actividad ssh final - UbuntuActividad ssh final - Ubuntu
Actividad ssh final - Ubuntu
 
Problemas en pruebas de implantacion
Problemas en pruebas de implantacionProblemas en pruebas de implantacion
Problemas en pruebas de implantacion
 
Mother board tarjeta madre - elementos varios
Mother board   tarjeta madre - elementos variosMother board   tarjeta madre - elementos varios
Mother board tarjeta madre - elementos varios
 
Ciclos de vida orientados a objetos
Ciclos de vida orientados a objetosCiclos de vida orientados a objetos
Ciclos de vida orientados a objetos
 
Pruebas de implantación del Software
Pruebas de implantación del SoftwarePruebas de implantación del Software
Pruebas de implantación del Software
 
SSH en Ubuntu - Transferencia Segura
SSH en Ubuntu - Transferencia SeguraSSH en Ubuntu - Transferencia Segura
SSH en Ubuntu - Transferencia Segura
 
Metodologías ágiles para el desarrollo de software - XP
Metodologías ágiles para el desarrollo de software - XPMetodologías ágiles para el desarrollo de software - XP
Metodologías ágiles para el desarrollo de software - XP
 
Taller Crontab - Ubuntu
Taller Crontab  - UbuntuTaller Crontab  - Ubuntu
Taller Crontab - Ubuntu
 
Capacitacion implantacion de Software
Capacitacion implantacion de SoftwareCapacitacion implantacion de Software
Capacitacion implantacion de Software
 
Programar tareas crontab en Ubuntu
Programar tareas  crontab en UbuntuProgramar tareas  crontab en Ubuntu
Programar tareas crontab en Ubuntu
 
Errores y fracasos en la implantación de Software
Errores y fracasos en la implantación de SoftwareErrores y fracasos en la implantación de Software
Errores y fracasos en la implantación de Software
 
Tipos de memoria del computador - Compendio
Tipos de memoria del computador - CompendioTipos de memoria del computador - Compendio
Tipos de memoria del computador - Compendio
 
Llenado de combobox vs2010 y oracle xe
Llenado de combobox vs2010 y oracle xeLlenado de combobox vs2010 y oracle xe
Llenado de combobox vs2010 y oracle xe
 
Sistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - CompendioSistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - Compendio
 
Puertos de un computador - Compendio
Puertos de un computador - CompendioPuertos de un computador - Compendio
Puertos de un computador - Compendio
 
Metricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionMetricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccion
 
Modelo de diseño - conceptos finales
Modelo de diseño  - conceptos finalesModelo de diseño  - conceptos finales
Modelo de diseño - conceptos finales
 

Dernier

activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnnlitzyleovaldivieso
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxBeatrizQuijano2
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxNadiaMartnez11
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 

Dernier (20)

activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 

Taller carga datos + JAVA

  • 1. TALLER LOGICA DE PROGRAMACION Carga de datos con Java Msc.ing.Jose Fabian Diaz Silva @josefabiandiaz Muchos programas requieren un tipo de interacción diferente con el usuario que no involucre la escritura de una serie de parámetros de entrada por medio del teclado. Un ejemplo de este caso es la carga de datos empleando un archivo, el cual puede contener un gran volumen de datos y permite gracias a ellos realizar simulaciones más precisas. En este taller se realizar un ejercicio que involucre la carga de un archivo plano (txt) , una clase principal y una clase auxiliar que generara los objetos del ejercicio. 1-Creacion de proyecto y clases Lo primero que es necesario realizar es crear un proyecto que almacene el taller que se realizara. File> New >Java Project Es necesario darle el nombre de “LogicadeProgramacion” al proyecto(en la ventana que aparece).
  • 2. Cuando el proyecto este creado, será necesario crear una clase para realizar la ejecución de las acciones que se esperan del taller. Para ello dar clic derecho sobre el paquete por defecto que aparece dentro del proyecto y seleccionar la creación de una nueva clase, así como lo indica la imagen. Es importante indicar en la ventana que aparece para ingresar el nombre que la clase se podrá ejecutar, para lo cual requiere un método main. La clase llevara el nombre “Bigcity”. Ya con la clase principal creada es necesario iniciar con la construcción de la clase auxiliar la cual se llamara “CiudadA”. (se debe seguir el mismo proceso que se empleo para crear la clase principal, pero sin la presencia del método main). Atributos y métodos La clase “CiudadA” tiene 4 atributos, el identificador que permite manejar cada objeto con una única identidad, un nombre que facilita su interpretación, un atributo que corresponde a la población que tiene y el nivel de desarrollo de la ciudad especifica(entre 1 y 5). int identificador; String nombre; int poblacion; int nivel; Sera necesario crear un constructor para poder iniciar con valores los objetos que se generaran a partir de la clase, pero Eclipse permite acelerar este desarrollo por medio de una herramienta que se encuentra dentro de sus opciones. Para generar automáticamente este
  • 3. código realice la acción que indica el grafico y señale los atributos que quiere que sean incluidos (se recomienda seleccionar todos). Al finalizar la ejecución se generara el siguiente código. public CiudadA(int identificador, String nombre, int poblacion, int nivel) { super(); this.identificador = identificador; this.nombre = nombre; this.poblacion = poblacion; this.nivel = nivel; } Posterior a la escritura del constructor se recomienda crear los métodos que permiten interactuar con los atributos de la clase, tanto para modificar como para retornar sus valores. Esto se denomina crear los métodos “Beans”. Eclipse permite igualmente generar automáticamente este código.
  • 4. Después de ejecutar esta acción se consigue este código. public int getIdentificador() { return identificador; } public void setIdentificador(int identificador) { this.identificador = identificador; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public int getPoblacion() { return poblacion; } public void setPoblacion(int poblacion) { this.poblacion = poblacion; } public int getNivel() { return nivel; } public void setNivel(int nivel) { this.nivel = nivel; } 2-Trabajando desde la clase principal Estando en la clase principal es necesario prepararla para realizar la lectura de un archivo plano. import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; Primero se debe importar el código para la lectura de archivos, esto se hace por medio de 3 librerías. La primera hace referencia a un buffer el cual va almacenando las líneas que se encuentran en el archivo y es el que facilita el trabajo con los datos. La segunda (FileReader)es requerida para crear un objeto que habilite la lectura de un archivo. La ultima (IOException) se emplea para capturar los posibles errores que se generen en el proceso de lectura del archivo. Importante: La inclusión de la librería IOException hace necesario la modificación del método main para que cobije la ejecución de la clase y capture posibles errores de lectura. public static void main(String[] args) throws IOException{
  • 5. 3-Invocando el archivo plano En la línea 12, se crea una variable “líneas” que será la variable que almacenara la información línea a línea que se va leyendo del archivo que se carga. En la línea 14, se declara un vector llamado VectorFinal, el cual se empleara para almacenar los datos contenidos en las líneas leídas del archivo plano. FileReader de la línea 15, es una clase que permite crear una instancia de un archivo, en esta oportunidad se crea la instancia fundamentada en el archivo “ciudadesC.txt”. Ya con la instancia creada “Fr”, se realiza la generación de un buffer(línea 16) el cual permite la carga de los datos del archivo. Lo primero que se realiza es calcular el número de líneas que se tiene al interior del archivo(nlineas). Se emplea el método “readLine” al interior de un While y asi se va pasando línea a línea y contabilizando. Para conocer el número de líneas del archivo se imprime en la línea 24 el valor de la cuenta. Por último se cierra el archivo en la línea 25. Posterior a la cuenta del número de líneas que tiene el archivo se inicia el verdadero proceso del mismo, puesto se realizara la creación de los objetos a partir de cada una de las líneas. En
  • 6. este punto es importante mencionar que el archivo plano almacena un gran número de datos de ciudades que coinciden con los atributos de la clase auxiliar que se creó. En la línea 27, se crea un vector de “CiudadA” que permite almacenar los objetos que se crearan por cada línea del archivo (el número de líneas que se calculo con anterioridad es de utilidad para definir el tamaño que tendrá el vector). Con la línea 28 y 29 se realiza la misma operación de apertura y creación de buffer que se explico en la primera parte. El while se encuentra en la línea 30 y se mantiene ejecutándose mientras el archivo tenga líneas que leer. Al interior de este while y en la línea 32, se realiza la separación de la línea leída en un vector(vectorfinal), por medio de un método llamado SPLIT que utiliza un carácter de separación para determinar cómo separar las líneas(cada línea del archivo plano tiene la información de una ciudad y cada uno de sus atributos tienen un punto y coma separándolos, por ello este carácter se emplea dentro del método). En la línea 33 se crea un objeto llamado “C” que es de tipo CiudadA, es importante observar que en esta línea se le pasan 4 parámetros al constructor de la clase. Los parámetros son tomados del “vectorfinal” que se creó a partir de la línea leída(cada parámetro corresponde a una posición del vector iniciando desde cero y finalizando en 3, aunque no se aprecia en la imagen). Como algunos de los datos esperados son de tipo entero y al leer se asume que todos son String es necesario emplear el método “Integer.parseInt()” que toma una cadena y la transforma al valor entero. Ya con el objeto “C” creado es necesario almacenarlo en una posición del vector , lo cual se hace en la línea 34 del ejercicio. Finalizado el proceso en la línea 37 y 38 se cierra tanto el buffer como el archivo. Con el vector “CA” lleno ya solo es necesario recorrerlo y con la línea 40 y 41 se realiza este recorrido, imprimiendo únicamente el nombre de la ciudad. Importante: Cuando un objeto queda almacenando dentro de un vector, no es necesario extraerlo para invocar sus métodos, como se evidencia en la línea 41 y el método “getNombre”.
  • 7. Clase completa import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Bigcity { /** * @param args */ public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub String lineas=""; //se declara vacia al inicio; String vectorFinal[]; FileReader Fr=new FileReader("C://ciudadesC.txt"); BufferedReader br=new BufferedReader(Fr); int nlineas=0; int i=0; while((lineas=br.readLine())!=null) { nlineas++; } System.out.println(nlineas); Fr.close(); CiudadA [] CA=new CiudadA[nlineas]; Fr=new FileReader("C://ciudadesC.txt"); br=new BufferedReader(Fr); while((lineas=br.readLine())!=null) { vectorFinal=lineas.split(";"); CiudadA C=new CiudadA(Integer.parseInt(vectorFinal[0]),vectorFinal[1],Integer.parseI nt(vectorFinal[2]),Integer.parseInt(vectorFinal[3])); CA[i]=C; i++; } br.close(); Fr.close(); for(int y=0;y<nlineas;y++) System.out.println(CA[y].getNombre()); } } Clase auxiliar public class CiudadA { int identificador; String nombre; int poblacion;
  • 8. int nivel; public CiudadA(int identificador, String nombre, int poblacion, int nivel) { super(); this.identificador = identificador; this.nombre = nombre; this.poblacion = poblacion; this.nivel = nivel; } public int getIdentificador() { return identificador; } public void setIdentificador(int identificador) { this.identificador = identificador; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public int getPoblacion() { return poblacion; } public void setPoblacion(int poblacion) { this.poblacion = poblacion; } public int getNivel() { return nivel; } public void setNivel(int nivel) { this.nivel = nivel; } }