+:apuntes

This commit is contained in:
jp.av.dev 2020-11-16 01:59:57 -03:00
parent 91f6878b24
commit f1fd853e9d
5 changed files with 395 additions and 0 deletions

View File

@ -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 <ctrl> d y oprima intro."
+ "Para Wintendo escriba \n <ctrl> 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();
}
}

View File

@ -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")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//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();
}// </editor-fold>//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 */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* 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);
}
//</editor-fold>
/* 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
}

View File

@ -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");
}
}

View File

@ -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();
}
}

View File

@ -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;
}
}