"Ma egy másik új és érdekes témát vizsgálunk: az ingatlanokat. "

"A Java-ban az a szokás, hogy a programokat rugalmassá és könnyen testreszabhatóvá, azaz könnyen konfigurálhatóvá teszik."
"Például, a program óránként egyszer kimásolja a fájlokat egy bizonyos könyvtárból, tömöríti őket, és elküldi Önnek e-mailben. Ehhez a programnak ismernie kell azt a könyvtárat, ahonnan a fájlok kerülnek, és az e-mail címet. hova kell küldeni. Az ilyen adatokat általában nem az alkalmazás kódjában tárolják, hanem egy külön tulajdonságfájlban . "
Az ebben a fájlban lévő adatok kulcs-érték párokként vannak tárolva, egyenlőségjellel elválasztva.
data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc
"A jeltől balra a név (kulcs), jobbra az érték."
"Szóval ez a HashMap egyfajta szöveges ábrázolása?"
– Általában igen.
"Az ilyen fájlokkal való munka kényelme érdekében a Java-nak van egy speciális Properties osztálya. A Properties osztály örökli a Hashtable<Object,Object>-t. Akár úgy is felfogható, mint egy Hashtable, amely képes betölteni magát egy fájlból."
"Íme a módszerei:"
Módszer | Leírás |
---|---|
void load(Reader reader) |
A Reader objektum által képviselt fájl tulajdonságait tölti be |
void load(InputStream inStream) |
Tulajdonságokat tölt be az InputStream objektum által képviselt fájlból |
void loadFromXML(InputStream in) |
Tulajdonságok betöltése XML-fájlból |
Object get(Object key) |
A megadott kulcs értékét adja vissza. Ezt a módszert a Hashtable örökölte |
String getProperty(String key) |
Egy tulajdonságértéket (karakterláncot) ad vissza kulcsonként. |
String getProperty(String key, String defaultValue) |
Tulajdonságértéket ad vissza kulcs vagy defaultValue alapján, ha nincs ilyen kulcs. |
Set<String> stringPropertyNames() |
Visszaadja az összes kulcs listáját |
"Más szóval, valójában csak két műveletet kell végrehajtania – adatokat töltsön be egy fájlból egy Properties objektumba, majd kapja meg ezeket a tulajdonságokat a getProperty () metódussal. Nos, és ne felejtse el, hogy használhatja a Properties objektumot, mint pl. egy HashMap ."
"Íme egy másik példa:"
// The file that stores our project's properties
File file = new File("c:/data.properties");
// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));
// Get property values from the Properties object
String email = properties.getProperty("email");
String directory = properties.getProperty("directory");
// Get a numeric value from the Properties object
int maxFileSize = Integer.parseInt(properties.getProperty("max.size", "10000"));
"Ah. Tehát létrehozunk egy Properties objektumot, majd átadunk neki egy fájlt. A betöltési metódusnak. Aztán csak meghívjuk a getProperty-t. Ugye?"
"Igen."
"És azt is mondtad, hogy használható HashMapként? Hogy értetted?"
"A Properties osztály örökli a Hashtable-t, ami megegyezik a HashMap-pel, de minden metódusa szinkronizált. Egyszerűen megjelenítheti a tulajdonságfájl összes értékét a képernyőn, így:
// Get the file with the properties
File file = new File("c:/data.properties");
// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));
// Run through all the keys and display their values on the console
for (String key : properties.stringPropertyNames())
{
System.out.println(properties.get(key));
}
"Ah. Úgy tűnik, minden a helyére került. Köszönöm, Rishi. Használni fogom ezt a klassz dolgot."
GO TO FULL VERSION