दिलचस्प पोस्ट
अगर यह अप्रत्याशित रूप से बंद होने पर एप्लिकेशन को पुन: प्रारंभ किया जाए ऐप बंद होने पर एंड्रॉइड सर्विस बंद हो जाती है दो सामान्य संख्याओं के मूल्यों की तुलना करना MySQL मामले में तालिका नाम संवेदनशील हैं? गूगल मानचित्र एंड्रॉइड में एपीआई कुंजी त्रुटियों पर हस्ताक्षर किए वर्तमान C या C ++ मानक दस्तावेज़ कहां से मिलते हैं? अधिक से अधिक 2 दशमलव स्थानों पर गोल करें (यदि आवश्यक हो तो) फ़ंक्शन के लिए try-catch सिंटैक्स के बीच अंतर ConfigParser में सूचियां इंटरैक्टिव मैप्लोटलिब आंकड़े सहेज रहे हैं Tensorflow में परत-वार सीखने की दर कैसे सेट करें? रिमैप, नॉरमैप, नॉरमॅप और vnoremap मैपिंग कमांड के बीच अंतर क्या है? स्वीफ्ट में क्लोजर से बचें Xcode 4.4 रिलीज नोट्स में उल्लेखित "उद्देश्य-सी लिटरल्स" का विवरण क्या है? मैं एक RDD को दो या अधिक RDD में कैसे विभाजित कर सकता हूं?

मैं कैसे एक फ़ाइल को कक्षा पथ में सहेज सकता हूँ

मैं कैसे एक फ़ाइल को सहेज / लोड कर सकता हूँ जो स्थित है जहां मेरी कक्षाएं हैं? मैं उस स्थान का भौतिक पथ नहीं हूं और मैं उस फ़ाइल को खोजने के लिए गतिशील चाहता हूं।

धन्यवाद

संपादित करें:

मुझे एक XML फ़ाइल लोड करना और लिखना और उसे पढ़ना है और मुझे यकीन नहीं है कि उसे कैसे संबोधित करना है

वेब के समाधान से एकत्रित समाधान "मैं कैसे एक फ़ाइल को कक्षा पथ में सहेज सकता हूँ"

सामान्य मामले में आप नहीं कर सकते क्लासलोडर से लोड किए गए संसाधन कुछ भी हो सकते हैं: निर्देशिकाओं में फ़ाइलें, जार फ़ाइलों में एम्बेड की गई फ़ाइलें या नेटवर्क पर भी डाउनलोड की गईं

ClassLoader#getResource() या getResourceAsStream() का उपयोग उन्हें URL रूप में या getResourceAsStream() से InputStream रूप में प्राप्त करने के लिए।

 ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); InputStream input = classLoader.getResourceAsStream("com/example/file.ext"); // ... 

या यदि यह वर्तमान पैकेज के समान पैकेज में है, तो आप इसे निम्नानुसार प्राप्त कर सकते हैं:

 InputStream input = getClass().getResourceAsStream("file.ext"); // ... 

बचत एक कहानी अलग है यह कार्य नहीं करेगा अगर फ़ाइल एक JAR फ़ाइल में स्थित है अगर आप यह सुनिश्चित कर सकते हैं कि फ़ाइल विस्तारित है और लिखने योग्य है, तो URL को getResource() से File कनवर्ट करें

 URL url = classLoader.getResource("com/example/file.ext"); File file = new File(url.toURI().getPath()); // ... 

फिर आप इसके साथ एक FileOutputStream सकते हैं

संबंधित सवाल:

  • getResourceAsStream() बनाम FileInputStream

आप निम्नलिखित की कोशिश कर सकते हैं कि आपका क्लास फाइल सिस्टम से लोड किया गया है।

 String basePathOfClass = getClass() .getProtectionDomain().getCodeSource().getLocation().getFile(); 

उस पथ में एक फ़ाइल प्राप्त करने के लिए जो आप उपयोग कर सकते हैं

 File file = new File(basePathOfClass, "filename.ext"); 

new File(".").getAbsolutePath() + "relative/path/to/your/files";

सिस्टम गुण दस्तावेजों के अनुसार, आप इसे "java.class.path" प्रॉपर्टी के रूप में देख सकते हैं:

 string classPath = System.getProperty("java.class.path"); 

यह पीटर की प्रतिक्रिया पर एक विस्तार है:

यदि आप एक ही कक्षा में मौजूदा वर्ग के रूप में फ़ाइल चाहते हैं (उदाहरण: प्रोजेक्ट / वर्ग):

 URI uri = this.getClass().getProtectionDomain().getCodeSource().getLocation().toURI(); File file = new File(new File(uri), PROPERTIES_FILE); FileOutputStream out = new FileOutputStream(createPropertiesFile(PROPERTIES_FILE)); prop.store(out, null); 

यदि आप फ़ाइल को एक अलग कक्षापथ (उदाहरण: प्रोजेक्ट / टेस्ट-क्लासेस) में चाहते हैं, तो बस this.getClass() को TestClass.class जैसे कुछ के साथ TestClass.class

क्लासपाथ से गुण पढ़ें:

 Properties prop = new Properties(); System.out.println("Resource: " + getClass().getClassLoader().getResource(PROPERTIES_FILE)); InputStream in = getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE); if (in != null) { try { prop.load(in); } finally { in.close(); } } 

गुणों को कक्षापाठ लिखें:

 Properties prop = new Properties(); prop.setProperty("Prop1", "a"); prop.setProperty("Prop2", "3"); prop.setProperty("Prop3", String.valueOf(false)); FileOutputStream out = null; try { System.out.println("Resource: " + createPropertiesFile(PROPERTIES_FILE)); out = new FileOutputStream(createPropertiesFile(PROPERTIES_FILE)); prop.store(out, null); } finally { if (out != null) out.close(); } 

क्लासपाथ पर फ़ाइल ऑब्जेक्ट बनाएँ:

 private File createPropertiesFile(String relativeFilePath) throws URISyntaxException { return new File(new File(this.getClass().getProtectionDomain().getCodeSource().getLocation().toURI()), relativeFilePath); }