Вы находитесь на странице: 1из 3

UNIVERSIDAD POLITCNICA DE MADRID

ETSISI - DPTO. SI
PROGRAMACIN ORIENTADA A OBJETOS
Curso 2015-2016 Grupo GM22

Solucin Prctica 11 Entrada-Salida


Clase Contacto

public class Contacto implements Serializable {


static Scanner sc = new Scanner(System.in);
String fichero = "ficheroAgendaVieja.txt";
private String nombre;
private String telefono;
private String email;
public Contacto () {
nombre = " ";
telefono = " ";
email = " ";
}
public Contacto (String nombre, String tfno, String email) {
this.nombre = nombre;
this.telefono = tfno;
this.email = email;
}

public void leer() {


System.out.println("introducir el nombre");
nombre = sc.next();
System.out.println("introducir el telefono");
telefono = sc.next();
System.out.println("introducir el email");
email = sc.next();
System.out.println();
}
public String toString() {
return "Contacto [nombre=" + nombre +
", telefono=" + telefono + ", email=" + email + "]";
}

Clase Agenda
public class Agenda {
final static int maxContactos = 8;
static Scanner sc = new Scanner(System.in);
private ArrayList<Contacto> listaContactos;
String fichero = "ficheroAgendaVieja.txt";
BufferedReader fagendavieja = null;
String fichero2 = "ficheroAgendaNueva.bin";
ObjectOutputStream fagendanuevasalida = null;
ObjectInputStream fagendanuevaentrada = null;

Prctica 11 POO GM22 Curso 2015-2016


Agenda () {
listaContactos = new ArrayList<Contacto>();
}
public void leerAgendaVieja() {
try {
fagendavieja = new BufferedReader(new FileReader(fichero));
String lineanombre = "&&&";
String lineatelefono; String lineaemail;
Contacto cc;
while (lineanombre != null) {
lineanombre = fagendavieja.readLine();
lineatelefono = (fagendavieja).readLine();
lineaemail = (fagendavieja).readLine();
if (lineanombre != null) {
cc = new Contacto(lineanombre, lineatelefono, lineaemail);
listaContactos.add(cc);
}
}
} catch (FileNotFoundException e) {
System.out.println("Fichero no encontrado");
} catch (IOException e) {
System.out.println("Error de E/S");
}
if (fagendavieja != null)
try {
fagendavieja.close();
} catch (IOException e) {
}
}
void aadirNuevos() {
char parar;
Contacto cc = null;
System.out.println("Quieres aadir un contacto nuevo: S/N");
parar = sc.next().charAt(0);
while (parar != 'N') {
cc = new Contacto();
cc.leer();
listaContactos.add(cc);
System.out.println("Quieres aadir un contacto nuevo: S/N");
parar = sc.next().charAt(0);
}
}
void ordenar() {
Collections.sort(listaContactos, new Comparador());
}
void pasarAArray() {
Contacto[] ar = new Contacto[listaContactos.size()];
ar = listaContactos.toArray(ar);
}

Prctica 11 POO GM22 Curso 2015-2016


void ordenar() {
Collections.sort(listaContactos, new Comparador());
}
void pasarAArray() {
Contacto[] ar = new Contacto[listaContactos.size()];
ar = listaContactos.toArray(ar);

}
public void generarNuevaAgenda() {
try {
fagendanuevasalida = new ObjectOutputStream(
new FileOutputStream(fichero2));
for (int i = 0; i < listaContactos.size(); i++) {
fagendanuevasalida.writeObject((listaContactos.get(i)));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();}
if (fagendanuevasalida != null)
try {
fagendanuevasalida.close();
} catch (IOException e) {
}
}
public void mostrarNuevaAgenda() {
try {
fagendanuevaentrada = new ObjectInputStream( new FileInputStream(fichero2));
for (int i = 0; i < listaContactos.size(); i++) {
System.out.println(fagendanuevaentrada.readObject());}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();}
if (fagendanuevaentrada != null)
try {
fagendanuevaentrada.close();
} catch (IOException e) {
}
}
void renovarAgenda() {
this.leerAgendaVieja();
this.aadirNuevos();
this.ordenar();
this.generarNuevaAgenda();
this.mostrarNuevaAgenda();
}

Вам также может понравиться