From f1fd853e9d39db60d50e31f4cf60333378f8319b Mon Sep 17 00:00:00 2001 From: "jp.av.dev" Date: Mon, 16 Nov 2020 01:59:57 -0300 Subject: [PATCH] +:apuntes --- .../CrearArchivoBinario.java | 71 +++++++++++ Apuntes_guia/lectura_escritura/EligeFoto.java | 118 ++++++++++++++++++ Apuntes_guia/lectura_escritura/FileDemo.java | 46 +++++++ .../lectura_escritura/LeerArchivoBinario.java | 96 ++++++++++++++ Apuntes_guia/lectura_escritura/Persona.java | 64 ++++++++++ 5 files changed, 395 insertions(+) create mode 100644 Apuntes_guia/lectura_escritura/CrearArchivoBinario.java create mode 100644 Apuntes_guia/lectura_escritura/EligeFoto.java create mode 100644 Apuntes_guia/lectura_escritura/FileDemo.java create mode 100644 Apuntes_guia/lectura_escritura/LeerArchivoBinario.java create mode 100644 Apuntes_guia/lectura_escritura/Persona.java diff --git a/Apuntes_guia/lectura_escritura/CrearArchivoBinario.java b/Apuntes_guia/lectura_escritura/CrearArchivoBinario.java new file mode 100644 index 0000000..391b625 --- /dev/null +++ b/Apuntes_guia/lectura_escritura/CrearArchivoBinario.java @@ -0,0 +1,71 @@ +package lectura_escritura_archivos; /** @author jp.av.dev@gmail.com */ + +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectOutputStream; +import java.util.Scanner; + +public class CrearArchivoBinario { + + private ObjectOutputStream salida; + + public void abrirArchivo() { + try { + salida = new ObjectOutputStream(new FileOutputStream("C:\\archivos\\personas.ser")); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + public void agregarRegistros() { + Persona objPersona; + String nombre; + String direccion; + String nacionalidad; + int edad; + double salario; + + Scanner entrada = new Scanner(System.in); + System.out.println("Introduzca los datos de la persona\n Para terminar escriba el indicador" + + "de fin de archivo.\nPara UNIX/LINUX o Mac OS X, escriba d y oprima intro." + + "Para Wintendo escriba \n z y oprima intro.\n\n"); + System.out.println("Escribe el nombre, la dirección, la nacionalidad,\n" + + "la edad y el salario de la persona"); + + while( entrada.hasNext() ) { + try { + nombre =entrada.next(); + direccion = entrada.next(); + nacionalidad = entrada.next(); + edad = entrada.nextInt(); + salario = entrada.nextDouble(); + + objPersona = new Persona(nombre, direccion, nacionalidad, edad, salario); + salida.writeObject(objPersona); + } catch( IOException ex ) { + ex.printStackTrace(); + } + System.out.println("Escribe el nombre, la dirección, la nacionalidad,\n" + + "la edad y el salario de la persona"); + } + } + + public void cerrarAchivo() { + try { + if ( salida != null) { + salida.close(); + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + public static void main(String[] args) { + CrearArchivoBinario aplicacion = new CrearArchivoBinario(); + + aplicacion.abrirArchivo(); + aplicacion.agregarRegistros(); + aplicacion.cerrarAchivo(); + } +} + diff --git a/Apuntes_guia/lectura_escritura/EligeFoto.java b/Apuntes_guia/lectura_escritura/EligeFoto.java new file mode 100644 index 0000000..47bfe32 --- /dev/null +++ b/Apuntes_guia/lectura_escritura/EligeFoto.java @@ -0,0 +1,118 @@ +package lectura_escritura_archivos; + +import java.io.File; +import javax.swing.ImageIcon; +import javax.swing.JFileChooser; +import javax.swing.filechooser.FileNameExtensionFilter; + + +public class EligeFoto extends javax.swing.JFrame { + + // Creates new form EligeFoto + public EligeFoto() { + initComponents(); + } + + /* + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + jButton1 = new javax.swing.JButton(); + imagen = new javax.swing.JLabel(); + + setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); + + jButton1.setText("Cargar Imagen"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap(109, Short.MAX_VALUE) + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 265, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(106, 106, 106)) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(imagen, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addComponent(imagen, javax.swing.GroupLayout.DEFAULT_SIZE, 307, Short.MAX_VALUE) + .addGap(18, 18, 18) + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + + pack(); + }// //GEN-END:initComponents + + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + File imgFile; + JFileChooser chooser = new JFileChooser(); + FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivos de imagen jpg, gif o png", + "jpg", "gif", "png"); + chooser.setFileFilter(filter); + + int returnVal = chooser.showOpenDialog(this); + + if ( returnVal == JFileChooser.APPROVE_OPTION) { + imgFile = chooser.getSelectedFile(); + ImageIcon icon = new ImageIcon(chooser.getSelectedFile().getAbsolutePath());//otra forma sería -> imageIcon.getAbsolutPath() + imagen.setIcon(icon); + } + }//GEN-LAST:event_jButton1ActionPerformed + + /* + * @param args the command line arguments + */ + public static void main(String args[]) { + /* Set the Nimbus look and feel */ + // + /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. + * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html + */ + 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) { + java.util.logging.Logger.getLogger(EligeFoto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (InstantiationException ex) { + java.util.logging.Logger.getLogger(EligeFoto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (IllegalAccessException ex) { + java.util.logging.Logger.getLogger(EligeFoto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } catch (javax.swing.UnsupportedLookAndFeelException ex) { + java.util.logging.Logger.getLogger(EligeFoto.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); + } + // + + /* Create and display the form */ + java.awt.EventQueue.invokeLater(new Runnable() { + public void run() { + new EligeFoto().setVisible(true); + } + }); + } + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel imagen; + private javax.swing.JButton jButton1; + // End of variables declaration//GEN-END:variables +} diff --git a/Apuntes_guia/lectura_escritura/FileDemo.java b/Apuntes_guia/lectura_escritura/FileDemo.java new file mode 100644 index 0000000..10d3a7d --- /dev/null +++ b/Apuntes_guia/lectura_escritura/FileDemo.java @@ -0,0 +1,46 @@ +package lectura_escritura_archivos; /** @author jp.av.dev@gmail.com */ + +import java.io.File; + + +public class FileDemo { + + public void analizarArchivo(String ruta) { + File nombre = new File(ruta); + + if (nombre.exists()) { + System.out.println(nombre.getName() + " : Existe"); + if (nombre.isDirectory()) { + System.out.println("Es un directorio"); + } else if (nombre.isAbsolute()) { + System.out.println("Es una ruta Absoluta"); + } else { + System.out.println("No es una ruta absoluta"); + } + System.out.println("Ultima modificación : " + nombre.lastModified()); + System.out.println("Tamaño de Archivo : " + nombre.length()); + System.out.println("Ruta : " + nombre.getPath()); + System.out.println("Ruta Absoluta : " + nombre.getAbsolutePath()); + + if (nombre.isDirectory()) { //Muestra el Directorio + String directorio[] = nombre.list(); + System.out.println("Contenido del Directorio :\n"); + + for( String nombreDirectorio : directorio) { + System.out.println("Nombre Directorio :" + nombreDirectorio); + } + } + } else { + System.out.println(ruta + " no existe"); + } + } + + public static void main(String[] args) { + /** + //File nombreArchivo = new File("c:/prueba.bmp"); + File nombreArchivo = new File("prueba.bmp");*/ + FileDemo demo = new FileDemo(); + //demo.analizarArchivo("prueba.bmp"); + demo.analizarArchivo("C:/Users/FuzanToko/Documents/Java Proyects/JAVA desde 0 a S/Lectura_Escriutra_Archivos"); + } +} diff --git a/Apuntes_guia/lectura_escritura/LeerArchivoBinario.java b/Apuntes_guia/lectura_escritura/LeerArchivoBinario.java new file mode 100644 index 0000000..a7c11aa --- /dev/null +++ b/Apuntes_guia/lectura_escritura/LeerArchivoBinario.java @@ -0,0 +1,96 @@ +package lectura_escritura_archivos; /** @author jp.av.dev@gmail.com */ + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.EOFException; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.table.DefaultTableModel; + + +public class LeerArchivoBinario extends JFrame { + + private ObjectInputStream entrada; + private DefaultTableModel modelo; + + public LeerArchivoBinario() { + modelo = new DefaultTableModel(); + modelo.addColumn("Nombre"); + modelo.addColumn("Dirección"); + modelo.addColumn("Nacionalidad"); + modelo.addColumn("Edad"); + modelo.addColumn("Salario"); + + JTable table = new JTable(modelo); + JScrollPane scroll = new JScrollPane(table); + + JButton boton = new JButton("Cargar Info"); + boton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + abrirArchivo(); + leerRegistros(); + cerrarArchivo(); + } + }); + + this.add(scroll); + this.add(boton); + this.setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS)); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setVisible(true); + this.pack(); + } + + public void abrirArchivo() { + try { + entrada = new ObjectInputStream(new FileInputStream("C:\\archivos\\personas.ser")); + } catch ( IOException ex) { + ex.printStackTrace(); + System.out.println("Error al abrir archivo"); + } + } + + public void leerRegistros() { + Persona objPersona; + try { + while (true){ + objPersona = (Persona)entrada.readObject(); + String nombre = objPersona.getNombre(); + String direccion = objPersona.getDireccion(); + String nacionalidad = objPersona.getNacionalidad(); + int edad = objPersona.getEdad(); + double salario = objPersona.getSalario(); + + String[] datosPersona = {nombre, direccion, nacionalidad, String.valueOf(edad), String.valueOf(salario)}; + modelo.addRow(datosPersona); + } + } catch ( EOFException endOfFileException) { + return;//se llego al final del archivo + } catch ( IOException ex) { + System.err.println("Error de lectura de archivo"); + } catch ( ClassNotFoundException ex) { + System.err.println("Error de crearción de objeto"); + } + } + + public void cerrarArchivo() { + try { + if(entrada != null) { + entrada.close(); + } + } catch (IOException ex) { + System.err.println("Error al cerrar el archivo"); + } + } + + public static void main(String[] args) { + LeerArchivoBinario leer = new LeerArchivoBinario(); + } +} diff --git a/Apuntes_guia/lectura_escritura/Persona.java b/Apuntes_guia/lectura_escritura/Persona.java new file mode 100644 index 0000000..0a45e08 --- /dev/null +++ b/Apuntes_guia/lectura_escritura/Persona.java @@ -0,0 +1,64 @@ +package lectura_escritura_archivos; /** @author jp.av.dev@gmail.com */ + +import java.io.Serializable; + + +public class Persona implements Serializable { + + private String nombre; + private String direccion; + private String nacionalidad; + int edad; + double salario; + //transient para atributos q no sean serializables, como por ejemplo un objeto personalizado Hijo. + public Persona(String nombre, String direccion, String nacionalidad, int edad, double salario) { + this.nombre = nombre; + this.direccion = direccion; + this.nacionalidad = nacionalidad; + this.edad = edad; + this.salario = salario; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public String getDireccion() { + return direccion; + } + + public void setDireccion(String direccion) { + this.direccion = direccion; + } + + public String getNacionalidad() { + return nacionalidad; + } + + public void setNacionalidad(String nacionalidad) { + this.nacionalidad = nacionalidad; + } + + public int getEdad() { + return edad; + } + + public void setEdad(int edad) { + this.edad = edad; + } + + public double getSalario() { + return salario; + } + + public void setSalario(double salario) { + this.salario = salario; + } + + + +}