"ఈ రోజు మనం మరొక కొత్త మరియు ఆసక్తికరమైన అంశాన్ని అన్వేషిస్తున్నాము: లక్షణాలు. "

"జావాలో, ప్రోగ్రామ్‌లను అనువైనదిగా మరియు సులభంగా అనుకూలీకరించగలిగేలా చేయడం ఆచారం, అంటే సులభంగా కాన్ఫిగర్ చేయగలదు."

"ఉదాహరణకు, గంటకు ఒకసారి మీ ప్రోగ్రామ్ నిర్దిష్ట డైరెక్టరీ నుండి ఫైల్‌లను కాపీ చేస్తుంది, వాటిని జిప్ చేసి, ఇమెయిల్‌లో మీకు పంపుతుంది. దీన్ని చేయడానికి, ప్రోగ్రామ్ ఫైల్‌లు ఎక్కడ నుండి తీసుకోబడుతుందో మరియు ఇమెయిల్ చిరునామాను తెలుసుకోవాలి. అటువంటి డేటా సాధారణంగా అప్లికేషన్ కోడ్‌లో కాకుండా ప్రత్యేక లక్షణాల ఫైల్‌లలో నిల్వ చేయబడుతుంది ."

ఈ ఫైల్‌లోని డేటా సమాన గుర్తుతో వేరు చేయబడిన కీ-విలువ జంటలుగా నిల్వ చేయబడుతుంది.

ఉదాహరణ
data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc

"సంకేతం యొక్క ఎడమ వైపున పేరు (కీ), కుడి వైపున విలువ ఉంటుంది."

"కాబట్టి ఇది హాష్‌మ్యాప్ యొక్క ఒక రకమైన వచన ప్రాతినిధ్యమా?"

"సాధారణంగా, అవును."

"అటువంటి ఫైల్‌లతో పని చేయడంలో సౌలభ్యం కోసం, జావా ప్రత్యేక ప్రాపర్టీస్ క్లాస్‌ని కలిగి ఉంది. ప్రాపర్టీస్ క్లాస్ హ్యాష్‌టేబుల్<ఆబ్జెక్ట్, ఆబ్జెక్ట్>ను వారసత్వంగా పొందుతుంది. ఇది ఫైల్ నుండి లోడ్ చేయగల హ్యాష్‌టేబుల్‌గా కూడా భావించవచ్చు."

"దాని పద్ధతులు ఇక్కడ ఉన్నాయి:"

పద్ధతి వివరణ
void load(Reader reader) రీడర్ ఆబ్జెక్ట్ ద్వారా సూచించబడిన ఫైల్ నుండి లక్షణాలను లోడ్ చేస్తుంది
void load(InputStream inStream) ఇన్‌పుట్‌స్ట్రీమ్ ఆబ్జెక్ట్ ద్వారా సూచించబడిన ఫైల్ నుండి లక్షణాలను లోడ్ చేస్తుంది
void loadFromXML(InputStream in) XML ఫైల్ నుండి లక్షణాలను లోడ్ చేయండి
Object get(Object key) పేర్కొన్న కీ కోసం విలువను అందిస్తుంది. ఈ పద్ధతి Hashtable నుండి వారసత్వంగా వచ్చింది
String getProperty(String key) కీ ద్వారా ఆస్తి విలువను (స్ట్రింగ్) అందిస్తుంది.
String getProperty(String key, String defaultValue) అటువంటి కీ లేనట్లయితే, ఆస్తి విలువను కీ లేదా డిఫాల్ట్ విలువ ద్వారా అందిస్తుంది.
Set<String> stringPropertyNames() అన్ని కీల జాబితాను అందిస్తుంది

"మరో మాటలో చెప్పాలంటే, మీరు వాస్తవానికి కేవలం రెండు కార్యకలాపాలను మాత్రమే నిర్వహించాలి- కొన్ని ఫైల్ నుండి డేటాను ప్రాపర్టీస్ ఆబ్జెక్ట్‌లోకి లోడ్ చేసి, ఆపై getProperty () పద్ధతిని ఉపయోగించి ఈ లక్షణాలను పొందండి. అలాగే, మీరు ఇలాంటి ప్రాపర్టీస్ ఆబ్జెక్ట్‌ను ఉపయోగించవచ్చని మర్చిపోకండి. ఒక HashMap ."

"ఇక్కడ మరొక ఉదాహరణ:"

కోడ్
// 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"));

"ఆహ్. కాబట్టి మనం ప్రాపర్టీస్ ఆబ్జెక్ట్‌ని సృష్టించి, ఆపై దానికి ఫైల్‌ను పాస్ చేస్తాము. లోడ్ మెథడ్‌కి. ఆపై మనం getProperty అని పిలుస్తాము. సరియైనదా?"

"అవును."

"మరియు మీరు దీన్ని HashMap లాగా ఉపయోగించవచ్చని కూడా చెప్పారు? మీరు ఉద్దేశ్యం ఏమిటి?"

"Properties class Hashtableని వారసత్వంగా పొందుతుంది, ఇది HashMap వలె ఉంటుంది, కానీ దాని అన్ని పద్ధతులు సమకాలీకరించబడ్డాయి. మీరు స్క్రీన్‌పై ఉన్న లక్షణాల ఫైల్ నుండి అన్ని విలువలను ఇలా ప్రదర్శించవచ్చు:"

కోడ్
// 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));
}

"అయ్యో. అంతా పక్కాగా పడ్డట్టుంది. థాంక్యూ రిషీ. నేను ఈ కూల్ థింగ్ ఉపయోగించబోతున్నాను."