दिलचस्प पोस्ट
मैं कोष्ठक के भीतर पाठ को एक regex के साथ कैसे निकाल सकता हूं? एन्जोर 2 में एनजी के लिए जेसन ऑब्जेक्ट को पुनरावृत्ति करना Cv :: warp निष्पादित सीवी :: प्वाइंट के एक सेट पर एक फर्जी डेस्किंग के लिए गिटब के साथ धक्का लगाते समय त्रुटि: घातक: उपयोगकर्ता नाम को नहीं पढ़ा जा सका मैक ओएसएक्स योसेमाइट में नवीनतम संस्करण के लिए रूबी संस्करण 2.0.0 को अपडेट कैसे करें? एकाधिक गतिविधियों से Google प्लस क्लाइंट तक पहुंचें पूरी ऊंचाई बढ़ाने के लिए डिव के लिए रिटर्न स्टेटमेंट अनिवार्य C ++ फ़ंक्शन के लिए अनिवार्य है जो शून्य नहीं लौटते हैं? किसी फ़ोल्डर या जार से रनटाइम पर कक्षाएं कैसे लोड करें? एंड्रॉइड: एक मेनू मद के लिए संदर्भ देखें कैसे एक प्रक्रिया अंडे और .NET में अपने एसटीडीओटी पर कब्जा? किसी प्रपत्र के सभी क्षेत्रों को साफ़ करने के लिए jQuery / Javascript फ़ंक्शन Xpath का उपयोग करते हुए एक्सएमएल फ़ाइलों में नामस्थानों को कैसे प्राप्त करें मंडल विंडो में ट्विटर बूटस्ट्रैप दिनांकपिकर "रनटाइम इयर" से बचने के लिए कैसे: त्रुटि के दौरान शब्दकोश बदलना शब्द बदल गया है?

जावा प्रॉपर्टी फाइलों का उपयोग कैसे करें?

मेरे पास कॉन्फ़िगरेशन मानों की कुंजी / मान जोड़े की सूची है I को जावा प्रॉपर्टी फाइलों के रूप में संग्रहीत करना चाहते हैं, और बाद में लोड और पुनरावृत्त करें I

प्रशन:

  • क्या मुझे उस पैकेज को उसी पैकेज में संग्रहित करने की आवश्यकता है जो उन वर्गों को लोड करेगा, या कोई विशिष्ट स्थान है जहां इसे रखा जाना चाहिए?
  • फाइल को किसी भी विशिष्ट एक्सटेंशन में समाप्त करना आवश्यक है या ठीक है।
  • मैं कोड में फ़ाइल को कैसे लोड कर सकता हूं
  • और मैं अंदर के मूल्यों के माध्यम से कैसे पुनरावृत्त हो सकता हूं?

Solutions Collecting From Web of "जावा प्रॉपर्टी फाइलों का उपयोग कैसे करें?"

आप संपत्ति के लिए एक InputStream पारित कर सकते हैं, तो आपकी फ़ाइल कहीं ज्यादा हो सकती है, और कुछ भी कह सकती है।

 Properties properties = new Properties(); try { properties.load(new FileInputStream("path/filename")); } catch (IOException e) { ... } 

के रूप में विस्फोट:

 for(String key : properties.stringPropertyNames()) { String value = properties.getProperty(key); System.out.println(key + " => " + value); } 
  • आप कहीं भी फाइल को स्टोर कर सकते हैं अगर आप इसे अपने जार फ़ाइल में रखना चाहते हैं, तो आप इसे Class.getResourceAsStream() करने के लिए Class.getResourceAsStream() या ClassLoader.getResourceAsStream() का उपयोग करना ClassLoader.getResourceAsStream() । अगर यह फ़ाइल सिस्टम पर है तो यह थोड़ा आसान है।

  • कोई एक्सटेंशन ठीक है, यद्यपि। मेरे अनुभवों में प्रॉपर्टीज़ अधिक सामान्य हैं

  • यदि आप जावा 6 का उपयोग कर रहे हैं तो InputStream या InputStream में Properties.load लोड करने के लिए फाइल को लोड करें। (अगर आप जावा 6 का प्रयोग कर रहे हैं , तो मैं शायद यूटीएफ -8 और Reader उपयोग डिफ़ॉल्ट आईएसओ -8859- एक स्ट्रीम के लिए 1 एन्कोडिंग।)

  • इसके माध्यम से दोहराएं क्योंकि आप सामान्य Hashtable (जो कि Properties प्राप्त होता है) के माध्यम से keySet() , जैसे keySet() का उपयोग keySet() । वैकल्पिक रूप से, आप propertyNames() द्वारा लौटा गणण का उपयोग कर सकते हैं

यदि आप गुण फाइल को एक ही पैकेज में क्लास फ़ू के रूप में डालते हैं, तो आप इसे आसानी से लोड कर सकते हैं

 new Properties().load(Foo.class.getResourceAsStream("file.properties")) 

यह देखते हुए कि प्रॉपर्टीज हैशटेबल प्रदान करती है, आप उसी तरीके से मूल्यों पर फिर से चल सकते हैं जैसा कि आप एक हैशटेबल में करेंगे।

यदि आप * .properties एक्सटेंशन का उपयोग करते हैं तो आप संपादक का समर्थन प्राप्त कर सकते हैं, उदाहरण के लिए एक्लिप्स में एक गुण फ़ाइल संपादक है।

properties फ़ाइलों को बनाने और पढ़ने के कई तरीके हैं:

  1. एक ही पैकेज में फ़ाइल को स्टोर करें।
  2. सिफारिश। .properties एक्सटेंशन हालांकि आप अपना खुद का चयन कर सकते हैं।
  3. ListResourceBundle पैकेज => Properties , ListResourceBundle , ResourceBundle बंडल कक्षाओं में स्थित थीस वर्गों का उपयोग करें।
  4. गुणों को पढ़ने के लिए, इटरेटर या गणक या गुणों के प्रत्यक्ष तरीकों या java.lang.System वर्ग का उपयोग करें।

ResourceBundle वर्ग:

  ResourceBundle rb = ResourceBundle.getBundle("prop"); // prop.properties System.out.println(rb.getString("key")); 

Properties वर्ग:

 Properties ps = new Properties(); ps.Load(new java.io.FileInputStream("my.properties")); 

यह गुण फ़ाइल लोड करें:

 Properties prop = new Properties(); InputStream stream = ...; //the stream to the file try { prop.load(stream); } finally { stream.close(); } 

मैं एक निर्देशिका में .properties फ़ाइल डाल करने के लिए उपयोग करता हूं जहां मेरे पास सभी कॉन्फ़िगरेशन फ़ाइलें हैं, मैं इसे उस वर्ग के साथ नहीं रखता जो इसे एक्सेस करता है, लेकिन यहां कोई प्रतिबंध नहीं है।

नाम के लिए … मैं वर्बोसिस की खातिर प्रॉपर्टीज़ का उपयोग करता हूं, मुझे नहीं लगता कि आपको इसका नाम देना चाहिए। यदि आप नहीं चाहते हैं तो प्रॉपर्टीज।

उदाहरण:

 Properties pro = new Properties(); FileInputStream in = new FileInputStream("D:/prop/prop.properties"); pro.load(in); String temp1[]; String temp2[]; // getting values from property file String username = pro.getProperty("usernamev3");//key value in prop file String password = pro.getProperty("passwordv3");//eg. username="zub" String delimiter = ","; //password="abc" temp1=username.split(delimiter); temp2=password.split(delimiter); 

क्रम में:

  1. आप फाइल को बहुत ज्यादा कहीं भी स्टोर कर सकते हैं
  2. कोई एक्सटेंशन आवश्यक नहीं है
  3. मोंटेक्रिटो ने यह कैसे स्पष्ट किया है कि यह कैसे लोड किया गया है। यह ठीक काम करना चाहिए
  4. गुणनाम () आप के माध्यम से पुनरावृति के लिए एक गणन देता है

डिफ़ॉल्ट रूप से, जावा आपके ऐप्लिकेशन की कार्य-निर्देशिका में इसे खोलता है (यह व्यवहार वास्तव में ओएस पर निर्भर करता है)। फ़ाइल लोड करने के लिए, करें:

 Properties props = new java.util.Properties(); FileInputStream fis new FileInputStream("myfile.txt"); props.load(fis) 

जैसे, किसी भी फ़ाइल एक्सटेंशन का उपयोग संपत्ति फ़ाइल के लिए किया जा सकता है। इसके अतिरिक्त, फ़ाइल को कहीं भी संग्रहीत किया जा सकता है, जब तक कि आप FileInputStream उपयोग कर सकते हैं

एक संबंधित नोट पर यदि आप एक आधुनिक ढांचा का उपयोग करते हैं, तो ढांचा एक संपत्ति फ़ाइल को खोलने के अतिरिक्त तरीके प्रदान कर सकता है। उदाहरण के लिए, स्प्रिंग एक ClassPathResource प्रदान करता है जो एक ClassPathResource फ़ाइल के अंदर से एक पैकेज नाम का उपयोग करके एक गुण फ़ाइल को लोड करता है।

गुणों के माध्यम से चलने के लिए, एक बार गुण लोड हो जाते हैं तो वे java.util.Properties ऑब्जेक्ट में संग्रहीत होते हैं, जो java.util.Properties propertyNames() विधि प्रदान करते propertyNames()

गुण विरासत बन गया है प्राथमिकताएं वर्ग गुणों को पसंद किया जाता है

वरीयता डेटा के पदानुक्रमित संग्रह में एक नोड यह वर्ग एप्लिकेशन को उपयोगकर्ता और सिस्टम वरीयता और कॉन्फ़िगरेशन डेटा को संग्रहीत और पुनर्प्राप्त करने देता है। यह डेटा एक कार्यान्वयन-निर्भर बैकिंग स्टोर में लगातार संग्रहीत होता है। विशिष्ट कार्यान्वयन में फ्लैट फाइलें, ओएस-विशिष्ट रजिस्ट्रियां, निर्देशिका सर्वर और एसक्यूएल डाटाबेस शामिल हैं। इस वर्ग के उपयोगकर्ता को बैकिंग स्टोर के विवरण के बारे में चिंतित नहीं होना चाहिए।

स्ट्रिंग आधारित कुंजी-मान जोड़े वाले गुणों के विपरीत, Preferences वर्ग में वरीयता डेटा स्टोर में आदिम डेटा प्राप्त करने और रखने के कई तरीकों का इस्तेमाल होता है। हम केवल निम्नलिखित प्रकार के डेटा का उपयोग कर सकते हैं:

  1. तार
  2. बूलियन
  3. दोहरा
  4. नाव
  5. पूर्णांक
  6. लंबा
  7. बाइट सरणी

गुण फ़ाइल को लोड करने के लिए, या तो आप पूर्ण पथ प्रदान कर सकते हैं या getResourceAsStream() उपयोग कर सकते हैं यदि गुण फ़ाइल आपकी getResourceAsStream() में मौजूद है।

 package com.mypack.test; import java.io.*; import java.util.*; import java.util.prefs.Preferences; public class PreferencesExample { public static void main(String args[]) throws FileNotFoundException { Preferences ps = Preferences.userNodeForPackage(PreferencesExample.class); // Load file object File fileObj = new File("d:\\data.xml"); try { FileInputStream fis = new FileInputStream(fileObj); ps.importPreferences(fis); System.out.println("Prefereces:"+ps); System.out.println("Get property1:"+ps.getInt("property1",10)); } catch (Exception err) { err.printStackTrace(); } } } 

xml फ़ाइल:

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE preferences SYSTEM 'http://java.sun.com/dtd/preferences.dtd'> <preferences EXTERNAL_XML_VERSION="1.0"> <root type="user"> <map /> <node name="com"> <map /> <node name="mypack"> <map /> <node name="test"> <map> <entry key="property1" value="80" /> <entry key="property2" value="Red" /> </map> </node> </node> </node> </root> </preferences> 

वरीयताओं के स्टोर के आंतरिक पर इस लेख को देखें

गुणों की फाइल पढ़ना और गुणों को इसकी सामग्री को लोड करना

 String filename = "sample.properties"; Properties properties = new Properties(); input = this.getClass().getClassLoader().getResourceAsStream(filename); properties.load(input); 

निम्नलिखित Properties पर पुनरावृत्त करने का कारगर तरीका है

  for (Entry<Object, Object> entry : properties.entrySet()) { System.out.println(entry.getKey() + " => " + entry.getValue()); } 

1) आपकी संपत्ति फ़ाइल को कक्षापथ में रखना अच्छा है लेकिन आप इसे परियोजना में कहीं भी रख सकते हैं।

नीचे बताया गया है कि आप कैसे क्लासपाथ से संपत्ति फ़ाइल लोड करते हैं और सभी गुण पढ़ें।

 Properties prop = new Properties(); InputStream input = null; try { String filename = "path to property file"; input = getClass().getClassLoader().getResourceAsStream(filename); if (input == null) { System.out.println("Sorry, unable to find " + filename); return; } prop.load(input); Enumeration<?> e = prop.propertyNames(); while (e.hasMoreElements()) { String key = (String) e.nextElement(); String value = prop.getProperty(key); System.out.println("Key : " + key + ", Value : " + value); } } catch (IOException ex) { ex.printStackTrace(); } finally { if (input != null) { try { input.close(); } catch (IOException e) { e.printStackTrace(); } } } 

2) प्रॉपर्टी फाइलों में विस्तार है .properties

अपने सभी गुण प्राप्त करने के लिए जावा 8 में

 public static Map<String, String> readPropertiesFile(String location) throws Exception { Map<String, String> properties = new HashMap<>(); Properties props = new Properties(); props.load(new FileInputStream(new File(location))); props.forEach((key, value) -> { properties.put(key.toString(), value.toString()); }); return properties; } 

गुणों को पुनरावृति करने का दूसरा तरीका यहां है:

 Enumeration eProps = properties.propertyNames(); while (eProps.hasMoreElements()) { String key = (String) eProps.nextElement(); String value = properties.getProperty(key); System.out.println(key + " => " + value); } 

मैंने पिछले वर्ष के लिए इस प्रॉपर्टी ढांचे पर लिखा है। यह संपत्तियों को लोड करने के कई तरीके प्रदान करेगा, और उन्हें जोरदार रूप से भी टाइप किया जाएगा

http://sourceforge.net/projects/jhpropertiestyp/ पर एक नज़र डालें

JHPropertiesTyped डेवलपर जोरदार टाइप गुणों को दे देंगे। मौजूदा परियोजनाओं में एकीकृत करने के लिए आसान संपत्ति प्रकारों के लिए एक बड़ी श्रृंखला द्वारा संभाला संपत्ति IO कार्यान्वयन के माध्यम से गुणों को एक-लाइन प्रारंभ करने की क्षमता देता है I डेवलपर को अपनी संपत्ति के प्रकार और संपत्ति IO के बनाने की क्षमता देता है। वेब डेमो भी उपलब्ध है, स्क्रीनशॉट ऊपर दिखाए गए हैं। यदि आप इसका उपयोग करना चुनते हैं, तो गुणों का प्रबंधन करने के लिए एक वेब फ्रंट एंड के लिए एक मानक कार्यान्वयन भी है

प्रोजेक्ट वेबपेज पर पूरा प्रलेखन, ट्यूटोरियल, जवाडॉक, अकसर आदि उपलब्ध हैं।