क्या क्लासलोडर के माध्यम से एक जार से पुनर्प्राप्त संसाधन पर फ़ाइल उदाहरण बनाने के लिए जावा में कोई तरीका है?फ़ाइल संसाधन के रूप में जावा संसाधन
मेरा एप्लिकेशन जार (डिफ़ॉल्ट) से कुछ फ़ाइलों या रनटाइम (उपयोगकर्ता इनपुट) पर निर्दिष्ट फाइल सिस्टम निर्देशिका से उपयोग करता है। जाहिर है, आदर्श दृष्टिकोण: मैं
क) लोड हो रहा है एक धारा
ख के रूप में इन फ़ाइलों) जार में उपयोगकर्ता परिभाषित निर्देशिका में फाइल या निर्देशिका लिस्टिंग क्रमशः
संपादित करने का संगत तरीका के लिए देख रहा हूँ पूरी तरह से java.io.File से दूर रहना होगा। क्या क्लासपाथ से निर्देशिका लोड करने का कोई तरीका है और इसकी सामग्री (इसमें निहित फाइलें/संस्थाएं) सूचीबद्ध हैं?
मैं सहमत हूं कि यह कष्टप्रद है - लेकिन यह क्लासलोडर को अन्य तरीकों से अधिक व्यापक रूप से लागू करता है। उदाहरण के लिए, "वेब क्लासलोडर" लिखना आसान है क्योंकि वेब फ़ाइलों को लाने के लिए अच्छा है, लेकिन यह आमतौर पर * सूची * फाइल नहीं है। –
ऐसा लगता है कि जिस संसाधन को आप लोड करने का प्रयास कर रहे हैं वह 1 एमआईबी से बहुत बड़ा है, 'getResourceAsStream' से प्राप्त' इनपुटस्ट्रीम 'उस आकार के बाद संसाधन के बाइट्स को पुनर्प्राप्त करने के लिए बंद हो जाता है और इसके बजाय 0 अगर यह संपीड़ित फाइल सिस्टम में निहित होता है एक जार की तरह आपको लगता है कि 'getResource' का उपयोग करने के लिए मजबूर होना चाहिए और उस मामले में फ़ाइल को स्वतंत्र रूप से लोड करें। – mgttlinger
@mgttlinger: यह मेरे लिए असंभव लगता है ... शायद यदि आप कर सकते हैं तो एक रेपो के साथ एक नया प्रश्न पोस्ट करने लायक है। –