„Astăzi explorăm un alt subiect nou și interesant: proprietăți.

„În Java, se obișnuiește ca programele să fie flexibile și ușor de personalizat, adică ușor de configurat.”

„De exemplu, o dată pe oră, programul tău copiază fișiere dintr-un anumit director, le arhivează și ți le trimite prin e-mail. Pentru a face acest lucru, programul trebuie să știe directorul de unde vor fi preluate fișierele și adresa de e-mail. unde ar trebui trimise. Astfel de date sunt de obicei stocate nu în codul aplicației, ci într-un fișier de proprietăți separat ."

Datele din acest fișier sunt stocate ca perechi cheie-valoare, separate printr-un semn egal.

Exemplu
data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc

„În stânga semnului este numele (cheia), în dreapta este valoarea.”

„Deci acesta este un fel de reprezentare textuală a unui HashMap?”

— În general, da.

„Pentru comoditate în lucrul cu astfel de fișiere, Java are o clasă specială Properties. Clasa Properties moștenește Hashtable<Object,Object>. Poate fi considerată chiar ca un Hashtable care se poate încărca singur dintr-un fișier.”

"Iată metodele sale:"

Metodă Descriere
void load(Reader reader) Încarcă proprietăți din fișierul reprezentat de un obiect Reader
void load(InputStream inStream) Încarcă proprietăți din fișierul reprezentat de un obiect InputStream
void loadFromXML(InputStream in) Încărcați proprietăți dintr-un fișier XML
Object get(Object key) Returnează valoarea pentru cheia specificată. Această metodă este moștenită de la Hashtable
String getProperty(String key) Returnează o valoare a proprietății (șir) după cheie.
String getProperty(String key, String defaultValue) Returnează o valoare de proprietate după cheie sau defaultValue dacă nu există o astfel de cheie.
Set<String> stringPropertyNames() Returnează o listă cu toate cheile

„Cu alte cuvinte, de fapt, trebuie să efectuați doar două operații — încărcați date dintr-un fișier într-un obiect Proprietăți și apoi obțineți aceste proprietăți folosind metoda getProperty (). Ei bine, și nu uitați că puteți utiliza obiectul Proprietăți ca o Hartă Hash ."

„Iată un alt exemplu:”

Cod
// 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. Așa că creăm un obiect Proprietăți și apoi îi transmitem un fișier. Metodei de încărcare. Și apoi apelăm doar la getProperty. Nu?"

"Da."

"Și ai mai spus că poate fi folosit ca HashMap? Ce ai vrut să spui?"

„Clasa Properties moștenește Hashtable, care este același cu HashMap, dar toate metodele sale sunt sincronizate. Puteți afișa pur și simplu toate valorile din fișierul de proprietăți pe ecran astfel:”

Cod
// 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. Totul pare să fi căzut la locul lui. Mulțumesc, Rishi. O să folosesc chestia asta tare."