PropertiesFilen 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.
PropertiesProperties 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.)
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.