ik wil gerust mijn code eens posten maar het probleem doet zich blijkbaar toch niet voor zoals ik dacht:
Code:
import java.io.*;
import java.util.*;
class Persoon {
private String vnaam;
private String fnaam;
private Telefoonnummer Tel;
public Persoon(String vnaam, String fnaam, Telefoonnummer Tel){
this.vnaam=vnaam;
this.fnaam=fnaam;
this.Tel=Tel;
}
public Persoon(){
}
public String geefVnaam(){
return vnaam;
}
public String geefFnaam(){
return fnaam;
}
public Telefoonnummer geefTel(){
return Tel;
}
public String toString(){
return fnaam+ ", "+vnaam+": "+Tel;
}
public Persoon leesIn() throws IOException{
InputStreamReader isr = new InputStreamReader (System.in);
BufferedReader in = new BufferedReader (isr);
System.out.println("Geef voornaam en naam in: ");
vnaam = in.readLine();
fnaam = in.readLine();
System.out.println("Geef telefoonnummer in: ");
Tel = new Telefoonnummer(Integer.parseInt(in.readLine()), in.readLine(),Integer.parseInt(in.readLine()));
Persoon p = new Persoon(vnaam,fnaam,Tel);
return p;
}
}
class Telefoonnummer{
private int land;
private String zone;
private int tel;
public Telefoonnummer(int land, String zone, int tel){
this.land=land;
this.zone=zone;
this.tel=tel;
}
public int geefLand(){
return land;
}
public String geefZone(){
return zone;
}
public int geefTel(){
return tel;
}
public String toString(){
return "+"+land+"/"+zone+tel;
}
}
class Telefoonboek{
private ArrayList personen = new ArrayList();
public Telefoonboek(){
}
public void voegToe(Persoon p){
personen.add(p);
}
public void gidsAfdrukken(){
for(int i=0; i<personen.size(); i++){
System.out.println(personen.get(i));
}
}
public void leesManueel() throws IOException{
Persoon p = new Persoon();
p.leesIn();
personen.add(p);
}
public void schrijfWeg(String naam) throws IOException{
PrintWriter out = new PrintWriter(new FileWriter(naam));
for(int i=0; i<personen.size(); i++){
Persoon p = (Persoon)personen.get(i);
out.println(p.geefVnaam());
out.println(p.geefFnaam());
out.println(p.geefTel().geefLand());
out.println(p.geefTel().geefZone());
out.println(p.geefTel().geefTel());
}
out.close();
System.out.println("Weggeschreven naar "+naam+" in je directory\n");
}
public void leesBestand(String naam) throws IOException{
BufferedReader in=new BufferedReader(new FileReader(naam));
try{
while(true){
String vnaam =in.readLine();
String fnaam=in.readLine();
// îîî hier dacht ik dat het mis zou lopen als er 'Van de Velde' stond, tis niet zo
int l = Integer.parseInt(in.readLine());
String z = in.readLine();
int t = Integer.parseInt(in.readLine());
Telefoonnummer telefoon = new Telefoonnummer(l,z,t);
Persoon p=new Persoon(vnaam,fnaam,telefoon);
personen.add(p);
}
}catch(Exception e){}
in.close();
}
public void zoekFamilie(String fam){
ArrayList familie = new ArrayList();
for(int i=0; i<personen.size();i++){
if(fam.equals(((Persoon)personen.get(i)).geefFnaam())){
familie.add(((Persoon)personen.get(i)));
}
}
System.out.println(familie);
}
}
public class TelefoonboekTest{
public static void main(String [] args) throws IOException{
InputStreamReader isr = new InputStreamReader (System.in);
BufferedReader in = new BufferedReader (isr);
Telefoonboek t = new Telefoonboek();
System.out.println("Hoeveel personen gaan we inlezen?");
int aantal = Integer.parseInt(in.readLine());
for(int i=0; i<aantal; i++){
t.leesManueel();
}
t.gidsAfdrukken();
t.schrijfWeg("Yellow.txt");
System.out.println("---------------------------------------------");
Telefoonboek ingelezen = new Telefoonboek();
ingelezen.leesBestand("Belgacom.txt");
System.out.println("Ingelezen:");
ingelezen.gidsAfdrukken();
ingelezen.zoekFamilie("Peeters");
}
}