Cargar y salvar en Java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.io.*;

public class CargaYSalva {
    public static void main (String args[]) {
Runnable tareaSwing = new Runnable() {
public void run() {
   final String nombreFichero = "texto.txt";

   JFrame ventana = new JFrame("Ejemplo de carga y salvar un fichero en una componente texto");
   ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

   final JTextField campoTexto = new JTextField();
   ventana.add(campoTexto, BorderLayout.NORTH);

   JPanel panel = new JPanel();

   // Define las acciones
   Action accionCargar = new AbstractAction() {
   {
putValue(Action.NAME, "Cargar");
   }
   public void actionPerformed(ActionEvent e) {
hacerComandoCargar(campoTexto, nombreFichero);
   }
};

   JButton botonCargar = new JButton (accionCargar);
   panel.add(botonCargar);
     
   Action accionSalvar = new AbstractAction() {
   {
putValue(Action.NAME, "Salvar");
   }
   public void actionPerformed(ActionEvent e) {
hacerComandoSalvar(campoTexto, nombreFichero);
   } };
     
   JButton saveButton = new JButton (accionSalvar);
   panel.add(saveButton);
     
   Action accionLimpiar = new AbstractAction() {
   {
putValue(Action.NAME, "Limpiar");
   }
   public void actionPerformed(ActionEvent e) {
campoTexto.setText("");
   } };
     
   JButton botonLimpiar = new JButton (accionLimpiar);
   panel.add(botonLimpiar);
     
   ventana.add(panel, BorderLayout.SOUTH);
   ventana.setSize(250, 150);
   ventana.setVisible(true);
}
   };
EventQueue.invokeLater(tareaSwing);
    }
   
    public static void hacerComandoSalvar(JTextComponent componenteTexto,
 String nombreFichero) {
FileWriter escritor = null;
try {
   escritor = new FileWriter(nombreFichero);
   componenteTexto.write(escritor);
} catch (IOException exception) {
   System.err.println("Error salvando");
   exception.printStackTrace();
} finally {
   if (escritor != null) {
try {
   escritor.close();

} catch (IOException exception) {
   System.err.println("Error cerrando escritor");
   exception.printStackTrace();
} }
} }
    public static void hacerComandoCargar(JTextComponent componenteTexto,
 String nombreFichero) {
FileReader lector = null;
try {
   lector = new FileReader(nombreFichero);
   componenteTexto.read(lector, nombreFichero);
} catch (IOException exception) {
   System.err.println("Error cargando");
   exception.printStackTrace();
} finally {
   if (lector != null) {
try {
   lector.close();
} catch (IOException exception) {
   System.err.println("Error cerrando lector");
   exception.printStackTrace();
}
   } }
    } }