Copiar Archivo de Texto y Guardarlo.

En este programa se utilizaron las siguientes clases que ayudaron a lograr el proposito de la aplicación.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;

Algunos componentes Swing:

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

Este programa toma como fuente un archivo de texto, (solo fue probado con archivo RTF y TXT), y como siguiente se escoge donde se quiere guardar la copia, puede escogerse otro nombre si se lo prefiere, al dar clic al boton de comienzo, el archivo es copiado en un formato de texto legible para cualquier procesador de texto.

Función principal del programa:

  • El usuario proporciona el archivo de texto (TXT o RTF) fuente, siguiente la ubicación o el path para guardar el archivo copia y el programa realizará el proceso de lectura del fuente con las clase BufferedReader, utilizando el FileWriter para escribirlo y PrintWriter para imprimirlo y finalizarlo.

Más información sobre BufferedReader y File

Código:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // new FileChooser(this,true).setVisible(true); /*Se especifica la orden de abrir el seleccionador                                          */
        int evtSelected = fc.showOpenDialog(this);

        if (evtSelected == JFileChooser.APPROVE_OPTION)
        {
            //File fichero = fileChooser.getSelectedFile();
            // Aquí debemos abrir y leer el fichero.
            jTextField1.setText(fc.getSelectedFile().getAbsolutePath() );
        }
        if (evtSelected == JFileChooser.CANCEL_OPTION)
        {
        // new FileFrame().setVisible(true);
            JOptionPane.showMessageDialog(null, "Accion Cancelada por el usuario", "Cancelado",JOptionPane.INFORMATION_MESSAGE);
        }
    }

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        int evtSelected = fc.showSaveDialog(this);

        if (evtSelected == JFileChooser.APPROVE_OPTION)
        {
            //File fichero = fileChooser.getSelectedFile();
            // Aquí debemos abrir y leer el fichero.
            jTextField2.setText(fc.getSelectedFile().getAbsolutePath() );
        }
        if (evtSelected == JFileChooser.CANCEL_OPTION)
        {
        // new FileFrame().setVisible(true);
            JOptionPane.showMessageDialog(null, "Accion Cancelada por el usuario", "Cancelado",JOptionPane.INFORMATION_MESSAGE);
        }
    }

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
        if (jTextField1.getText().compareTo("")==0){
            JOptionPane.showMessageDialog(null,"Debe especificar el archivo original que desea copiar" , "Atencion", JOptionPane.INFORMATION_MESSAGE);
        }else
            if (jTextField2.getText().compareTo("")==0){
            JOptionPane.showMessageDialog(null,"Debe especificar el nombre del archivo copia" , "Atencion", JOptionPane.INFORMATION_MESSAGE);
        }   else
        try {
            // Apertura del fichero y creacion de BufferedReader para poder
            // hacer una lectura comoda (disponer del metodo readLine()).
            archivo = new File (jTextField1.getText());
            fr = new FileReader (archivo);
            br = new BufferedReader(fr);
            fichero = new FileWriter(jTextField2.getText());
            pw = new PrintWriter(fichero);

            // Lectura del fichero
            String linea = br.readLine();
            while(linea!=null){
                 pw.println(linea);
                 linea = br.readLine();
            }
            //for (int i = 0; i < 10; i++)
               // pw.println("Linea " + i);
        }catch(Exception e){
            e.printStackTrace();
        }finally{
        // En el finally cerramos el fichero, para asegurarnos
        // que se cierra tanto si todo va bien como si salta
        // una excepcion.
            jLabel4.setText("Archivo copiado!");
            try{
                if( null != fr ){
                    fr.close();
                }
                if (null != fichero){
                    fichero.close();
                }
            }catch (Exception e2){
                e2.printStackTrace();
            }
        }
    }

Número Factorial.

 

 

Este programa usado por un [While] simple en el método para sacar el factorial, procesa el parametro que proporciona el usuario mediante una interfaz simple en Swing, resultado se imprime dentro una label. Si lo prefieres, el límite del cálculo se puede definir dentro de la condicional [if] donde pongo el limite hasta 10.


Función principal del programa:

  • En este simple programa, se procesa el numero [!] factorial de un numero dado del 1-10.

Código del bóton+método:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        int numero; //Variable local, entera, numero definido por el usuario.
        numero = Integer.parseInt(this.jTextField1.getText());
        if (numero > 10 || numero < 0) { // Condicional para que solo se usen numeros del 0 al 10
            JOptionPane.showMessageDialog(null, "Escribir numero entre 0 al 10.", "Atencion!!", JOptionPane.INFORMATION_MESSAGE);
            //Orden para el cuadro de dialogo.
        } else {

            if (numero == 0) {
                rfactorial = "1"; //Obviando el numero cero.
            } else {
                rfactorial = calcFactorial(numero);
            }
            this.jLabel3.setText(rfactorial); // Orden para modificar el campo Label.
        }

    }
    private String calcFactorial(int n) { // Creacion del metodo.
        int rFacto = 1; //Variable local, se crea cuando se manda llamar al metodo, y se destruye cuando termina su ejecucion.
        while (n != 0) {
            rFacto = rFacto * (n);
            n--;
        }
        return rFacto + ""; /* Al concatenar comillas al tipo de dato (entero en este caso), automaticamente,
         * hace un cast y lo devuelve.
         */
    }

Comparación de 3 números.

En este sencillo programa, usado con una interfaz muy sencilla en Java Swing, podremos ver el funcionamiento completo y parcial de la estructura “if“. (Las condiciones están anidadas debido al proceso de comparación entre 3 elementos).

Función principal del programa:

  • Proporcionar al usuario cual es el numero menor de 3 números proporcionados por él.

Código del Método del Boton:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        int ed1 = 0, ed2 = 0, ed3 = 0;
        ed1 = Integer.parseInt(this.jTextField1.getText());
        ed2 = Integer.parseInt(this.jTextField2.getText());
        ed3 = Integer.parseInt(this.jTextField3.getText());

        if ((ed1 == ed2) && (ed1 == ed3)) {
            this.jLabel5.setText("Todos tienen la misma edad.");
        } else {
            if (ed1 < ed2) {
                if (ed1 < ed3) {
                    this.jLabel5.setText("La Persona 1 tiene la menor edad.");
                } else {
                    if (ed1 == ed3) {
                        this.jLabel5.setText("Las Personas 1 y 3 tienen la menor edad.");
                    } else {
                        this.jLabel5.setText("La Persona 3 tiene la menor edad.");
                    }
                }
            } else {
                if (ed2 < ed3) {
                    this.jLabel5.setText("La Persona 2 tiene la menor edad.");
                } else {
                    if (ed2 == ed3) {
                        this.jLabel5.setText("Las Personas 2 y 3 tienen la menor edad.");
                    } else {
                        this.jLabel5.setText("La Persona 3 tiene la menor edad.");
                    }
                }
            }

        }
    }

public void HelloWorld();

Bienvenido a mi bitácora de programas en Java. Todo lo publicado aquí, serán mis prácticas sobre mis clases de Desarrollo de Software dentro del Instituto Tecnológico de Chapala.

No soy un programador de nicho pero, me gusta mucho conocer nuevas cosas y entender el desarrollo mismo de mundo de la informatica, por lo cual, las críticas, complementos al proyecto, marcación de errores, consejos, recomendaciones y cualquier otra cosa para mejorar, será bienvenida.

Espero que este espacio sea de utilidad para todos vosotros. Un abrazo.