यदि यह पहले से ही क्लासपाथ में है, तो बस इसे डिस्क फ़ाइल सिस्टम के बजाय क्लासपाथ से प्राप्त करें। में रिश्तेदार पथ के साथ बेला मत करो java.io.File
। वे वर्तमान कामकाजी निर्देशिका पर निर्भर हैं, जिस पर आपके पास जावा कोड के अंदर से पूरी तरह से कोई नियंत्रण नहीं है।
मान लें कि ListStopWords.txt
आपकी FileLoader
कक्षा के समान पैकेज में है , तब करें:
URL url = getClass().getResource("ListStopWords.txt");
File file = new File(url.getPath());
या यदि आप आखिरकार हैं तो वास्तव InputStream
में इसका एक हिस्सा है:
InputStream input = getClass().getResourceAsStream("ListStopWords.txt");
यह निश्चित रूप से बनाने पर पसंद किया जाता है new File()
क्योंकि url
यह आवश्यक रूप से डिस्क फ़ाइल सिस्टम पथ का प्रतिनिधित्व नहीं कर सकता है, लेकिन यह वर्चुअल फ़ाइल सिस्टम पथ का प्रतिनिधित्व भी कर सकता है (जो तब हो सकता है जब डिस्क फ़ाइल सिस्टम पर एक अस्थायी फ़ोल्डर में JAR को मेमोरी में विस्तारित किया जाता है) या यहां तक कि एक नेटवर्क पथ जो दोनों प्रति रचनाकार द्वारा पचने योग्य नहीं हैं File
।
यदि फ़ाइल -as पैकेज नाम संकेत है- वास्तव में एक "पूर्ण" एक्सटेंशन के साथ एक पूर्ण गुण वाली फ़ाइल ( key=value
लाइनें युक्त ) है, तो आप InputStream
तुरंत load()
विधि को खिला सकते हैं ।
Properties properties = new Properties();
properties.load(getClass().getResourceAsStream("ListStopWords.txt"));
नोट: जब आप इसे अंदर के static
संदर्भ से एक्सेस करने का प्रयास कर रहे हों , तो उपरोक्त उदाहरणों के बजाय FileLoader.class
(या जो भी YourClass.class
) उपयोग करें getClass()
।
properties.files
के लिए2
?