/**
* Ansatt-klassen
*/
public class Ansatt implements Comparable
{
private String navn;
private int alder; // invariant: alder er fra 20 til og med 30 ?r
private String linje;
private String epost;
public Ansatt(String navn, int alder, String linje, String epost)
{
if (alder < 20 || alder > 30)
{ throw new IllegalArgumentException("Den ansatte er under 20 eller over 30 ?r"); }
this.navn = navn;
this.alder = alder;
this.linje = linje;
this.epost = epost;
}
public int compareTo(Ansatt annen)
{ return navn.compareTo(annen.navn); }
@Override
public String toString()
{ return navn + " er " + alder + " ?r, g?r " + linje + " og kan kontaktes p? " + epost; }
}
/**
* Ansattoversikt-klassen
*/
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.PriorityQueue;
import java.util.Scanner;
public class Ansattoversikt
{
private PriorityQueue ansatte = new PriorityQueue<>();
public void leggTilAnsatt(Ansatt nyAnsatt)
{ ansatte.add(nyAnsatt); }
public void lesFraFil(String filnavn) throws FileNotFoundException
{
File fil = new File(filnavn);
// ved ? ?pne en Scanner p? dette viset vil den automatisk lukkes
try (Scanner les = new Scanner(fil))
{
while (les.hasNextLine())
{
String[] info = les.nextLine().split(";"); // eksempel: ["Lars", "28", "design", "lilarsse@ifi.uio.no"]
Ansatt nyAnsatt = new Ansatt(info[0], Integer.parseInt(info[1]), info[2], info[3]);
leggTilAnsatt(nyAnsatt);
}
}
}
public void skrivTilFil(String filnavn) throws FileNotFoundException
{
PrintWriter skriv = new PrintWriter(filnavn);
int antall_ansatte = ansatte.size();
for (int i = 0; i < antall_ansatte; i ++)
{ skriv.println(ansatte.poll()); } // t?mmer prioritetsk?en for ansatte
skriv.close(); // hvis man ikke bruker try-notasjonen som i lesFraFil, m? man lukke selv
}
public static void main(String[] args)
{
// kj?res med kommandoen: java Ansattoversikt ansatte.csv oversikt.txt
String innfil = args[0]; // "ansatte.csv"
String utfil = args[1]; // "oversikt.txt"
Ansattoversikt ansattoversikt = new Ansattoversikt();
try
{ ansattoversikt.lesFraFil(innfil); }
catch (FileNotFoundException e)
{ System.err.println("Feil ved lesing fra fil: " + e.getMessage()); }
try
{ ansattoversikt.skrivTilFil(utfil); }
catch (FileNotFoundException e)
{ System.err.println("Feil ved skriving til fil: " + e.getMessage()); }
}
}