2009-07-07 6 views
8

मैं गुण श्रेणी के लिए गुण फ़ाइल लोड करने के लिए क्लासलोडर का उपयोग करना चाहता हूं। इस वर्ग मैं फ़ाइल "theta.properties" है उसी निर्देशिका मेंक्लासपाथ से फ़ाइल लोड करने के लिए मैं जावा क्लासलोडर का उपयोग कैसे करूं?

loader = this.getClass().getClassLoader(); 
in = loader.getResourceAsStream("theta.properties"); 
result = new Properties(); 
result.load(in); 

लेकिन InputStream हमेशा रिक्त है: मैं इस चर्चा के लिए से निपटने त्रुटि दूर करने के लिए नीचे दिए गए कोड को आसान बना दिया। क्या मैं फाइल को गलत जगह पर डाल रहा हूं? मैं ग्रहण फ़ाइल का उपयोग स्रोत फ़ोल्डर में वर्ग फ़ाइलों को बनाने के लिए कर रहा हूं - इसलिए यह समस्या नहीं होनी चाहिए।

क्लासलोडर को मुझे यह बताने के लिए जावाडॉक में कुछ भी नहीं मिला है कि मुझे कौन सा क्लासपाथ खोजा जा रहा है।

उत्तर

10

getClass().getClassloader() आप रूट पथ निर्देशिका से "theta.properties" देखने का उपयोग करके। उस वर्ग के सापेक्ष संसाधन प्राप्त करने के लिए बस getClass().getResourceAsStream() का उपयोग करें।

6

यदि फ़ाइल कक्षा के समान निर्देशिका में है, तो आपको कक्षा के पैकेज को निर्देशिका के रूप में उपसर्ग करना होगा।

इसलिए यदि आपके पैकेज है:

package com.foo.bar; 

फिर अपने कोड है:

.getResourceAsStream("com/foo/bar/theta.properties"); 
-1

आप संसाधन बंडल

का उपयोग कर सकते हैं