मैं मुख्य वर्ग के लिए निम्न पथ संरचना है:क्लास फ़ोल्डर के बाहर जावा में गुण फ़ाइल को कैसे पढ़ा जाए?
D:/java/myapp/src/manClass.java
और मैं गुण
D:/java/myapp/config.properties
जो एक फ़ाइल नाम और कुछ अन्य विन्यास में शामिल होंगे में फ़ाइल रखना चाहते हैं। मैं फ़ाइल नाम सेट करेंगे गुण इस तरह फ़ाइल में: file=file_to_read.txt
इस file_to_read.txt
D:/java/myapp/folder_of_file/
में स्थित होगा से गुण पहले फाइल मुख्य वर्ग फ़ाइल नाम पढ़ा जाएगा और उसके बाद सामग्री फ़ाइल के रूप में मिलता है ।
मैं यह कर सकता है, तो config.properties
और file_to_read.txt
दोनों mainClass.java
साथ src/
में हैं। लेकिन जिस तरह से मैं इसे करना चाहता हूं उसके साथ सफल नहीं हो सका।
क्या कोई इस से मेरी सहायता कर सकता है? मुझे आपके सुझाव की आवश्यकता है कि मैं क्या कर सकता हूं यदि मैं अपने ड्राइव में कहीं भी myapp
फ़ोल्डर को उसी आंतरिक संरचना के साथ रखना चाहता हूं जिसमें मैंने ऊपर वर्णित किया है और कार्यक्रम सही ढंग से काम करेगा।
मुझे आपके सुझाव की भी आवश्यकता है कि अगर मैं परियोजना के निर्माण के बाद बनाए गए जार से नौकरी करना चाहता हूं तो क्या मैं बिना किसी समस्या के कर सकता हूं?
मैं के रूप में की कोशिश की है बस गुण फ़ाइल को पढ़ने के लिए निम्नलिखित:
URL location = myClass.class.getProtectionDomain().getCodeSource().getLocation();
String filePath = location.getPath().substring(1,location.getPath().length());
InputStream in = myClass.class.getResourceAsStream(filePath + "config.properties");
prop.load(in);
in.close();
System.out.println(prop.getProperty("file"));
लेकिन इस गलती जब getProperty करने की कोशिश की से गुण फ़ाइल देता है। धन्यवाद!
हां, बलुस के पहले समाधान का उपयोग करें। – Klinetel
धन्यवाद, यह मेरे लिए काम किया। लेकिन, मुझे एक टिप्पणी जोड़ने की जरूरत है। यदि आप क्लासपाथ में फ़ोल्डर जोड़ते हैं, तो संसाधन को स्ट्रीम के रूप में प्राप्त करते समय आपको फ़ोल्डर निर्दिष्ट करने की आवश्यकता नहीं है, इसका मतलब है कि आप केवल getResourceAsStream ("/ config.properties") को कॉल करते हैं, भले ही वह फ़ाइल किसी फ़ोल्डर में स्थित हो संसाधन –
@ जेसस: हां, फ़ोल्डर की सामग्रियों का उपयोग उसी तरह के अन्य फ़ोल्डरों में पहले से ही (डिफ़ॉल्ट) क्लासपाथ में करने का इरादा है। – BalusC