"Bugün başka bir yeni ve ilginç konuyu keşfediyoruz: özellikler. "

"Java'da, programları esnek ve kolayca özelleştirilebilir, yani kolayca yapılandırılabilir yapmak alışılmış bir şeydir."

"Örneğin, programınız saatte bir kez dosyaları belirli bir dizinden kopyalar, sıkıştırır ve size e-postayla gönderir. Bunu yapmak için, programın dosyaların alınacağı dizini ve e-posta adresini bilmesi gerekir. nereye gönderilmeleri gerektiği. Bu tür veriler genellikle uygulama kodunda değil, ayrı bir özellik dosyasında saklanır."

Bu dosyadaki veriler, eşittir işaretiyle ayrılan anahtar/değer çiftleri olarak depolanır.

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

"İşaretin solunda isim (anahtar), sağında değer var."

"Yani bu bir HashMap'in bir tür metinsel temsili mi?"

"Genel olarak, evet."

"Bu tür dosyalarla çalışırken kolaylık sağlamak için Java'nın özel bir Properties sınıfı vardır. Properties sınıfı, Hashtable<Object,Object> öğesini devralır. Hatta kendisini bir dosyadan yükleyebilen bir Hashtable olarak da düşünülebilir."

"İşte yöntemleri:"

Yöntem Tanım
void load(Reader reader) Bir Reader nesnesi tarafından temsil edilen dosyadan özellikleri yükler
void load(InputStream inStream) Bir InputStream nesnesi tarafından temsil edilen dosyadan özellikleri yükler
void loadFromXML(InputStream in) Özellikleri bir XML dosyasından yükleyin
Object get(Object key) Belirtilen anahtarın değerini döndürür. Bu yöntem Hashtable'dan miras alınmıştır.
String getProperty(String key) Anahtara göre bir özellik değeri (dize) döndürür.
String getProperty(String key, String defaultValue) Anahtar veya böyle bir anahtar yoksa defaultValue ile bir özellik değeri döndürür.
Set<String> stringPropertyNames() Tüm anahtarların bir listesini döndürür

"Başka bir deyişle, aslında yalnızca iki işlem gerçekleştirmeniz gerekir: bir dosyadan bir Properties nesnesine veri yüklemek ve ardından getProperty () yöntemini kullanarak bu özellikleri elde etmek . Pekala, Properties nesnesini şu şekilde kullanabileceğinizi unutmayın: bir HashMap ."

"İşte başka bir örnek:"

kod
// 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. Yani bir Properties nesnesi oluşturacağız ve ona bir dosya ileteceğiz. Load yöntemine. Sonra getProperty'i çağıracağız. Değil mi?"

"Evet."

"Ayrıca HashMap olarak kullanılabileceğini de söyledin? Ne demek istedin?"

"Properties sınıfı, HashMap ile aynı olan Hashtable'ı devralır, ancak tüm yöntemleri senkronize edilir. Özellikler dosyasındaki tüm değerleri basitçe şu şekilde ekranda görüntüleyebilirsiniz:"

kod
// 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. Her şey yerine oturmuş gibi görünüyor. Teşekkürler Rishi. Bu harika şeyi kullanacağım."