-respuesta corta no manejas las excepciones estas obligado a usar el bloque try catch cuando los métodos te obligan puedes leer el java doc para comprobar que el método exija ser encerrado entre try catch en caso de que uses el ide lee los mensajes de error ( porque nunca lo hacen) o asle clik al icono de hojito interrogacion esclamacion bicho o algún tipo de botón que este en la línea resaltada como error (normalmente de color rojo ) para que te escriba el código faltante
-es recomendable que escribas getters y setters y constructor
-es recomendable que sepas que son las excepciones y como se manejan correctamente
-si tienes un método que tenga una función que no tenga ninguna relación con la responsabilidad de la clase y que no llame a ninguna variable global de la propia clase y que además tenga una lista larga de parámetros y que aparte los parámetros tengan mucho que ver eso te grita que es extremadamente probable que no sea un buen diseño o una buena idea en esos casos es mejor que lo saques en una clase aparte y que remplaces la lista de parámetros por un objeto
-tal vez te parezca que es mucho problema programar en varias clases pero notas la gran diferencia cuando quieres cambiar algo y no lo tienes que hacer en 1000 partes diferentes
-la solución propuesta no maneja los errores de forma exhaustiva pero por lo menos lo maneja
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class EscritorAgenda {
private final BufferedWriter bufferedWriter;
public static void main(String arg[]) {
EscritorAgenda escritorAgenda = new EscritorAgenda(new File(
"agenda.txt"));
escritorAgenda.escribir(new Agenda("nombre", "apellido", 123456,
"email"));
escritorAgenda.close();
}
public EscritorAgenda(File file) {
try {
bufferedWriter = new BufferedWriter(new FileWriter(file));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public void escribir(Agenda agenda) {
try {
bufferedWriter.append(agenda.toString());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public void close() {
try {
if (bufferedWriter != null) {
bufferedWriter.close();
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}