"Ngayon ay tinutuklasan namin ang isa pang bago at kawili-wiling paksa: mga pag-aari. "
"Sa Java, kaugalian na gawing flexible at madaling ma-customize ang mga program, ibig sabihin, madaling i-configure."
"Halimbawa, isang beses bawat oras ang iyong programa ay kinokopya ang mga file mula sa isang partikular na direktoryo, i-zip ang mga ito, at ipapadala ang mga ito sa iyo sa email. Upang magawa ito, kailangang malaman ng program ang direktoryo kung saan kukunin ang mga file, at ang email address kung saan dapat ipadala ang mga ito. Karaniwang nakaimbak ang naturang data hindi sa application code, ngunit sa isang hiwalay na mga file ng pag-aari ."
Ang data sa file na ito ay nakaimbak bilang key-value pairs, na pinaghihiwalay ng isang pantay na tanda.
data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc
"Sa kaliwa ng karatula ay ang pangalan (susi), sa kanan ay ang halaga."
"Kaya ito ay isang uri ng textual na representasyon ng isang HashMap?"
"Sa pangkalahatan, oo."
"Para sa kaginhawahan sa pagtatrabaho sa mga ganoong file, ang Java ay may espesyal na klase ng Properties. Ang Properties class ay nagmamana ng Hashtable<Object,Object>. Maaari pa itong isipin bilang isang Hashtable na maaaring mag-load ng sarili mula sa isang file."
"Narito ang mga pamamaraan nito:"
Pamamaraan | Paglalarawan |
---|---|
void load(Reader reader) |
Naglo-load ng mga katangian mula sa file na kinakatawan ng isang bagay ng Reader |
void load(InputStream inStream) |
Naglo-load ng mga property mula sa file na kinakatawan ng isang InputStream object |
void loadFromXML(InputStream in) |
Mag-load ng mga katangian mula sa isang XML file |
Object get(Object key) |
Ibinabalik ang halaga para sa tinukoy na key. Ang pamamaraang ito ay minana mula sa Hashtable |
String getProperty(String key) |
Nagbabalik ng value ng property (string) sa pamamagitan ng key. |
String getProperty(String key, String defaultValue) |
Nagbabalik ng value ng property sa pamamagitan ng key o defaultValue kung walang ganoong key. |
Set<String> stringPropertyNames() |
Ibinabalik ang isang listahan ng lahat ng mga susi |
"Sa madaling salita, kailangan mo lang talagang magsagawa ng dalawang operasyon— mag-load ng data mula sa ilang file papunta sa Properties object at pagkatapos ay kunin ang mga property na ito gamit ang getProperty () method. Well, at huwag kalimutan na maaari mong gamitin ang Properties object tulad ng isang HashMap ."
"Narito ang isa pang halimbawa:"
// 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. Kaya gumawa kami ng Properties object, at pagkatapos ay ipapasa ang isang file dito. Sa paraan ng pag-load. At pagkatapos ay tatawagan lang namin ang getProperty. Diba?"
"Oo."
"At sinabi mo rin na pwede itong gamitin bilang HashMap? Anong ibig mong sabihin?"
"Ang Properties class ay namamana ng Hashtable, na kapareho ng HashMap, ngunit ang lahat ng mga pamamaraan nito ay naka-synchronize. Maaari mo lamang ipakita ang lahat ng mga value mula sa properties file sa screen tulad nito:"
// 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. Parang naayos na ang lahat. Salamat, Rishi. Gagamitin ko itong cool na bagay."
GO TO FULL VERSION