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