Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Trabajo de Lectura y Escritura de Archivos (con extensión .

txt)

package packformulario;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileNotFoundException;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

public class Formulario extends javax.swing.JFrame {


String ruta = null;

public Formulario() {
initComponents();
}

private void initComponents() {


elegirfichero = new javax.swing.JFileChooser();
btnbuscar = new javax.swing.JButton();
btnescribir = new javax.swing.JButton();
btnleer = new javax.swing.JButton();
txtruta = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
txtlista = new javax.swing.JTextArea();
btningresar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
btnbuscar.setText("Buscar");
btnbuscar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnbuscarActionPerformed(evt);
}
});
btnescribir.setText("Escribir");
btnescribir.setEnabled(false);
btnescribir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnescribirActionPerformed(evt);
}
});

btnleer.setText("Leer");
btnleer.setEnabled(false);
btnleer.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnleerActionPerformed(evt);
}
});

txtruta.setEditable(false);
txtlista.setColumns(20);
txtlista.setRows(5);
jScrollPane1.setViewportView(txtlista);

btningresar.setText("Ingresar Texto");
btningresar.setEnabled(false);
btningresar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btningresarActionPerformed(evt);
}
});

org.jdesktop.layout.GroupLayout layout = new


org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
.addContainerGap()
.add(btnbuscar)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 18, Short.MAX_VALUE)
.add(txtruta, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 284,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))
.add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
.add(109, 109, 109)
.add(btnescribir)
.add(62, 62, 62)
.add(btnleer)))
.add(21, 21, 21))
.add(layout.createSequentialGroup()
.add(56, 56, 56)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 283,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(61, Short.MAX_VALUE))
.add(layout.createSequentialGroup()
.add(135, 135, 135)
.add(btningresar)
.addContainerGap(162, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(31, 31, 31)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(btnbuscar)
.add(txtruta, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(38, 38, 38)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(btnescribir)
.add(btnleer))
.add(14, 14, 14)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 110,
org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 27, Short.MAX_VALUE)
.add(btningresar)
.addContainerGap())
);
pack();
}

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


int resp;
resp=elegirfichero.showOpenDialog(this);
if (resp==JFileChooser.APPROVE_OPTION) {
ruta=elegirfichero.getSelectedFile().toString();
txtruta.setText("");
txtruta.setText(ruta);
txtruta.setEditable(false);
btnleer.setEnabled(true);
btnescribir.setEnabled(true);
}
}

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


btnescribir.setEnabled(false);
txtlista.setText("");
txtlista.setEditable(true);
btningresar.setEnabled(true);
}

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


FileWriter fw = null;
try {
fw = new FileWriter(ruta, true);
fw.write("\n" + txtlista.getText());
fw.close();
txtlista.setText("");
btningresar.setEnabled(false);
btnleer.setEnabled(true);
btnescribir.setEnabled(true);
} catch (IOException ioe) {
ioe.printStackTrace();
JOptionPane.showMessageDialog(null,"Error de lectura del archivo " + ruta);
}
}

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


File file = null;
BufferedReader br = null;
String strLine = null;
try {
btnleer.setEnabled(false);
txtlista.setEditable(false);
file = new File(ruta);
if (file.exists()) {
br = new BufferedReader(new FileReader(file));
while ((strLine = br.readLine()) != null) {
txtlista.append(strLine + "\n");
}
br.close();
}else{
JOptionPane.showMessageDialog(null,"archivo no existe : " + ruta);
}
} catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
JOptionPane.showMessageDialog(null,"Imposible encontrar el archivo : + ruta");
} catch (IOException ioe) {
ioe.printStackTrace();
JOptionPane.showMessageDialog(null,"Error de lectura del archivo : + ruta");
}
}

public static void main(String args[]) {


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Formulario().setVisible(true);
}
});
}

private javax.swing.JButton btnbuscar;


private javax.swing.JButton btnescribir;
private javax.swing.JButton btningresar;
private javax.swing.JButton btnleer;
private javax.swing.JFileChooser elegirfichero;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea txtlista;
private javax.swing.JTextField txtruta;
}

You might also like