Klassen Properties

Inledning

En vanlig situation är att man vid en körning av ett program skall förse det med diverse indata. Till exempel kan man vid en specifik simulering av en kösituation vilja ange antalet köer, ankomstfrekvenser, betjäningstider etc. Det är då praktiskt att kunna lagra dessa på en textfil och låta programmet läsa värdena (''körningsparametrarna'') från filen. Då räcker det med att redigera textfilen och man slipper kompilera om programmet för varje ny körning.

Filen bör, förutom värdena, innehålla dokumentation av vad varje värde står för. Dessutom vore det trevligt om man kunde ge data i vilken ordning som helst.

Alla dessa saker tillhandahålls av klassen java.util.Properties.

Klassen Properties

Klassen Properties representerar en avbildning från värden (''nycklar'') av typen String till värden av typen String dvs för varje String-objekt i definitionsmängden finns det exakt ett värde i form av ett String-objekt.

Man kan också se ett Properties-objekt som en tabell med två kolumner där den först kolumnen innehåller nycklar och den andra värden.

(Observera att man naturligtvis kan lagra tal som String-objekt men att man måste konvertera dem till tal innan man kan räkna med dem.)

Konstruktorer och metoder:

Properties() Konstruktor. Skapar tom avbildning
String getProperty(String key) Returnerar värdet lagrat för nyckeln key eller null om nyckeln inte finns.
setProperty(String key, String value) Lagrar värdet value under nyckeln key. Eventuellt gammalt värde försvinner (returneras, i själva verket).
load(Reader r) Läser en egenskapslista (par av nycklar och värden). Den första 'token' (en följd av icks-blanka tecken) betraktas som nyckel och resten av raden som värde. (Nyckel och värde kan också åtskiljas av = eller :).
store(Writer w, String comment) Lagrar egenskapslistan (tabellen) på en fil.

Provande följande (t ex i DrJavas interaktionruta):

> import java.util.*
> import java.io.*
> Properties p = new Properties();
> p.setProperty("x", "2.5");
> p.setProperty("y", "42");
> p
> p.getProperty("x")
> p.getProperty("z")
> FileWriter fw = new FileWriter("minaEgenskaper.txt");
> p.store(fw, "Dagens simulering")
>

Titta sedan på filen minaEgenskaper.txt och se hur den ser ut. Prova sedan att editera den och på nytt ladda in den till ett Properties-objekt.

Se vidare ett litet exempel och ett lite större exempel som också visar hur man kan konvertera strängar till tal.

Tillbaka