Está en la página 1de 15

Programación Orientada a Objetos III

(Grupo: DS-DPO3-2001-B2-001)

Unidad 1. Archivos
Actividad 2. Lectura de archivos

Alumno: Victor Manuel Grimaldi Beltrán


Matricula: ES1821005841
Correo: victorgrimaldib@nube.unadmexico.mx
División: División de Ciencias Exactas, Ingenierías y Tecnológicas (CEIT)
Docente: Amadeo Coporo Quintana
Carrera: Ing. en Desarrollo de Software
Semestre: Cuarto
Fecha: 12 de Abril de 2020
Contenido
Actividad 2. Lectura de archivos ..................................................................................... 1
Introducción..................................................................................................................... 3
Instrucciones ................................................................................................................... 4
Desarrollo ........................................................................................................................ 5
Código del ejercicio en Java del programa de lectura de archivos de texto .................... 7
Conclusión .................................................................................................................... 14
Referencias ................................................................................................................... 15

Victor M. Grimaldi B. #ES1821005841 Página 2


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
Introducción

En esta segunda actividad de la materia, se presenta un ejemplo practico programado


con Java, en el que se genera una interfaz gráfica, desde la que se puede leer un archivo
de texto, con el uso de JFileChooser, el archivo de texto debió haber sido creado y
guardado previamente, en una dirección de la computadora, que puede ser interna o
externa, mientras sea accesible.

Victor M. Grimaldi B. #ES1821005841 Página 3


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
Instrucciones

1. Desarrolla la interfaz gráfica del programa, ésta deberá tener al menos un botón para
localizar el archivo y el área de texto donde se reflejará el archivo que se lea, también
deberá contener el nombre del alumno y su matrícula.
2. Desarrolla el método que cargará el archivo desde su directorio y lo muestre en el
área de texto creada con este fin (se tiene que poder elegir la ruta del archivo a abrir),
integra en el código del programa comentarios describiendo la funcionalidad del
método desarrollado.
3. Elabora un documento de texto donde describas con tus palabras en qué consiste el
programa realizado, su objetivo y al menos dos capturas de pantalla de su
funcionamiento.
4. Menciona los componentes utilizados en la elaboración de tu programa y la estructura
requerida para la lectura de archivos de texto, incluir código fuente en el documento
y explicar cada parte importante de este (incluir comentarios en el código o explicar
de manera general el código); apóyate de las fuentes que consultaste.

Victor M. Grimaldi B. #ES1821005841 Página 4


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
Desarrollo

El programa, del cual encontraran el código más abajo, muestra una interfaz gráfica con
varios componentes que se muestras,
• Primero muestra un botón de “Leer Archivo”, con el cual da acceso a una ventana
de búsqueda de archivos, para seleccionar el archivo que se requiere recuperar,
para que despliegue el texto que contiene
• Incluye también el área de texto, donde muestra el contenido del archivo de texto
que se seleccione
• Por último, un botón “Salir” que permite cerrar el programa la finalizar su uso.

Como explicación de su funcionamiento, en la clase main, se instancia el llamado al menú


en la interfaz gráfica, para que sea desplegado, para después, cada vez que se oprima
el botón Leer, abrir la ventana de navegación del contenido de la computadora, a través
de un método utilizando JFileChooser llamando un getSelectedFile, para que verifique
primero si el archivo tiene la extensión correcta y una vez comprobado y correcto, lea el
contenido de dicho archivo de texto y lo coloque en el área de texto definida en la interfaz
gráfica, concatenando los caracteres contenidos mediante un FileInputStream.

De acuerdo a las
instrucciones, la interface
muestra mi nombre y
número de matrícula.

Finalmente, al oprimir el botón Salir, primero preguntara si estamos seguros de querer


salir del sistema, para después ejecutar un comando System.exit al ser confirmado,
cerrando el sistema.

Victor M. Grimaldi B. #ES1821005841 Página 5


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
Al oprimir el botón “Leer Archivo”, se abrirá la ventana de navegación en archivos y
dispositivos de la computadora, donde se puede buscar y seleccionar el archivo de texto
deseado, para abrirlo y mostrarlo.

Así, al seleccionar el botón Leer, abrirá el archivo seleccionado y mostrará su contenido


en el área de texto de la interfaz gráfica.

Al seleccionar el botón
“Salir” pide confirmación
y después cierra el
sistema

Victor M. Grimaldi B. #ES1821005841 Página 6


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
Código del ejercicio en Java del programa de lectura de archivos de texto

/** Programa Java creado por


* Alumno: Victor Manuel Grimaldi Beltrán
* Matricula: ES1821005841
* Correo: victorgrimaldib@nube.unadmexico.mx
* División: División de Ciencias Exactas, Ingenierías y Tecnológicas (CEIT)
* Materia: Programación Orientada a Objetos III
* Docente: Amadeo Coporo Quintana
* Carrera: Ing. en Desarrollo de Software
* Unidad 1. Actividad 2 - Lectura de archivos
* Programa que muestra interfaz gráfica con botón para leer archivos de texto
*/
package dpo3_u1_a2_vigb_leetxt;

/**
*
* @author victorg
* @since 12/Abr/2020
*/
public class DPO3_U1_A2_VIGB_LeeTxt {

/**
* @param args Método main que llama la interfaz gráfica
*/
public static void main(String[] args) {
frmLeeTxt p = new frmLeeTxt();//Transfiriendo main a frmLeeTxt
p.setVisible(true); //Haciendo visible el frmLeeTxt como interfaz gráfica
}
}

**********************************************************
/*
* Clase frmLeeTxtMenu
* Incluye métodos y eventos de los botones de la interfaz gráfica
*/
package dpo3_u1_a2_vigb_leetxt;

import java.io.*;
import javax.swing.JFileChooser;

Victor M. Grimaldi B. #ES1821005841 Página 7


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
*
* @author victorg
* @since 12/Abr/2020
*
* Se crea la salida de archivos de texto
*/
public class frmLeeTxt extends javax.swing.JFrame {
JFileChooser seleccionar = new JFileChooser();
File archivo;
FileInputStream entrada;

/**
* Crea la forma de interfaz gráfica frmLeeTxt
*/
public frmLeeTxt() {
initComponents();//Inicia los componentes de la interfaz gráfica
}

/**
* Método para leer un archivo de texto
*/
public String LeerArchivo(File archivo) {
String documento = "";//Inicia contenido del archivo vacío
try {
entrada = new FileInputStream(archivo);//Inicia el flujo de entrada de datos
int ascci;
while ((ascci = entrada.read()) != -1) {
char caracter = (char) ascci;
documento += caracter;
}
} catch (Exception e) {
}
return documento; //Devuelve el contenido de texto del archivo
}
@SuppressWarnings("unchecked")

Victor M. Grimaldi B. #ES1821005841 Página 8


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

btnLeerA = new javax.swing.JButton();


btbSalir = new javax.swing.JButton();
lblTextoMuestra = new javax.swing.JLabel();
lblTitulo = new javax.swing.JLabel();
lblSeleccion = new javax.swing.JLabel();
lblfirma = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
txtArea = new javax.swing.JTextPane();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

btnLeerA.setText("Leer Archivo");
btnLeerA.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnLeerAActionPerformed(evt);
}
});

btbSalir.setText("Salir");
btbSalir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btbSalirActionPerformed(evt);
}
});

lblTextoMuestra.setText("Muestra texto dentro del archivo seleccionado");

lblTitulo.setText("Menú de opciones de programa para leer archivos de texto");

lblSeleccion.setText("Seleccionar opción o salir del sistema");

lblfirma.setFont(new java.awt.Font("Tahoma", 0, 9)); // NOI18N


lblfirma.setText("Creado por Victor Grimaldi - ES1821005841 - 2020");

jScrollPane2.setViewportView(txtArea);

Victor M. Grimaldi B. #ES1821005841 Página 9


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(47, 47, 47)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblTitulo)
.addGroup(layout.createSequentialGroup()
.addGap(42, 42, 42)
.addComponent(lblSeleccion)))
.addGap(0, 27, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jScrollPane2)
.addGroup(layout.createSequentialGroup()
.addComponent(lblfirma)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btbSalir,
javax.swing.GroupLayout.PREFERRED_SIZE, 78,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(btnLeerA,
javax.swing.GroupLayout.PREFERRED_SIZE, 127,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addContainerGap()

Victor M. Grimaldi B. #ES1821005841 Página 10


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
.addComponent(lblTextoMuestra)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()
.addComponent(lblTitulo)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(lblSeleccion)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
29, Short.MAX_VALUE)
.addComponent(btnLeerA)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblTextoMuestra)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE,
44, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
11, Short.MAX_VALUE)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(btbSalir)
.addComponent(lblfirma))
.addContainerGap())
);

pack();
}// </editor-fold>

private void btnLeerAActionPerformed(java.awt.event.ActionEvent evt) {


// Acción del botón Leer para abrir o leer el contenido del archivo de texto
if (seleccionar.showDialog(this, "Leer") == JFileChooser.APPROVE_OPTION) {
archivo = seleccionar.getSelectedFile();//Selecciona el archivo
if (archivo.canRead()) {
if (archivo.getName().endsWith("txt")) {//Asignando la extensión del archivo
compatible

Victor M. Grimaldi B. #ES1821005841 Página 11


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
String documento = LeerArchivo(archivo);
txtArea.setText(documento);
/**
* Devuelve la información contenida en el archivo de texto
* en el area de texto del frame
*/
} else {
JOptionPane.showMessageDialog(null, "Archivo no se puede leer");
//Si el archivo no es del tipo txt, debe informar al usuario error
}
}
}
}
private JFrame frame;
private void btbSalirActionPerformed(java.awt.event.ActionEvent evt) {
// Accion del boton Salir para abandonar el sistema
frame = new JFrame("Salir");
if (JOptionPane.showConfirmDialog(frame, "Confirme salida del sistema",
//Solicita se confirme si se cierra el sistema o no
"Saliendo", JOptionPane.YES_NO_OPTION) ==
JOptionPane.YES_NO_OPTION) {
System.exit(0);//Cierra el sistema
}
}

/**
* @param args
*/
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

Victor M. Grimaldi B. #ES1821005841 Página 12


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
java.util.logging.Logger.getLogger(frmLeeTxt.class.getName()).log(java.util.logging.Lev
el.SEVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(frmLeeTxt.class.getName()).log(java.util.logging.Lev
el.SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(frmLeeTxt.class.getName()).log(java.util.logging.Lev
el.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(frmLeeTxt.class.getName()).log(java.util.logging.Lev
el.SEVERE, null, ex);
}
//</editor-fold>

/* Crea y despliega la forma */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frmLeeTxt().setVisible(true);
}
});
}
//Declaracion de variables de la forma
// Variables declaration - do not modify
private javax.swing.JButton btbSalir;
private javax.swing.JButton btnLeerA;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JLabel lblSeleccion;
private javax.swing.JLabel lblTextoMuestra;
private javax.swing.JLabel lblTitulo;
private javax.swing.JLabel lblfirma;
private javax.swing.JTextPane txtArea;
}//Fin del algoritmo

Victor M. Grimaldi B. #ES1821005841 Página 13


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
Conclusión

En esta actividad he podido comprobar el uso e importancia de los flujos de entrada y de


salida, para una mejor comprensión tanto del suscrito, como de otros estudiantes que
puedan utilizar este documento como guía o parte de su estudio, donde pueden practicar
ingresando datos de entrada y verificando la funcionalidad del programa al visualizar los
datos de salida dentro de la interfaz gráfica, como resultado de todo el flujo dentro del
mismo sistema.

Victor M. Grimaldi B. #ES1821005841 Página 14


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2
Referencias
Castro, R. (26 de 04 de 2019). Como crear, leer y eliminar Archivos .txt en Java
Netbeans. Recuperado el 12 de 04 de 2020, de Youtube - Video:
https://www.youtube.com/watch?v=xGrjR_WnO7s
DDR. (17 de 12 de 2013). Clases FileInputStream y FileOutputStream para ficheros
binarios en Java. Recuperado el 12 de 04 de 2020, de Disco Duro de Roer:
https://www.discoduroderoer.es/clases-fileinputstream-y-fileoutputstream-para-
ficheros-binarios-en-java/
UNADM. (2019). UNADM - Programación Orientada a Objetos III. Recuperado el 12 de
04 de 2020, de UNADM - Unidad 1. Archivos:
https://ceit.unadmexico.mx/contenidos/DCEIT/BLOQUE2/DS/04/DPO3/U1/desca
rgables/DPO3_U1_Contenido.pdf

Victor M. Grimaldi B. #ES1821005841 Página 15


Grupo DS-DPO3-2001-B2-001
Unidad 1 - Actividad 2

También podría gustarte