2010-12-05 12 views
9

मैं एक विशिष्ट पैकेज में एक टेक्स्ट फ़ाइल पढ़ने की कोशिश कर रहा हूं लेकिन यह वापस लौटाया जा सकता है। मैं इसे पूर्ण पथ डालने में पढ़ सकता हूं लेकिन मैं इसे बिना डाले बिना पढ़ना चाहता हूं पूर्ण पथकिसी विशिष्ट पैकेज से txt फ़ाइल को पढ़ना जावा

String texto = "Utils/CEP/Cidades/" + estado + ".txt"; 
FileReader fr = new FileReader(texto); 
BufferedReader in = new BufferedReader(fr); 

मुझे कैसे करना चाहिए?

धन्यवाद

+0

आपका क्या मतलब है, "एक विशिष्ट पैकेज में"? कौन सा पैकेज? – skaffman

+0

यह निम्न प्रश्नों के लिए डुप्लिकेट जैसा दिखता है: http://stackoverflow.com/questions/4359876/how-to-load-reference-a-file-as-a-file-instance-from-the-classpath –

उत्तर

22

आप

InputStream in = 
    getClass().getResourceAsStream("/Utils/CEP/Ciades/" + estado + ".txt"); 
Reader fr = new InputStreamReader(in, "utf-8"); 

कुछ sidenotes उपयोग कर सकते हैं: पैकेज के नाम में बड़े अक्षरों का उपयोग नहीं करते; अपने चर के अंग्रेजी नाम का प्रयोग करें। ये स्वीकार्य प्रथाओं और सम्मेलनों हैं।

0

कुल पोर्टेबिलिटी के लिए, जगह में File.separator का उपयोग करने का फ़ॉरवर्ड स्लैश पर विचार, लेकिन हाँ getResourceAsStream काम करना चाहिए। ध्यान रखें, कि यदि आप ग्रहण में काम कर रहे हैं, तो आपकी कक्षा फाइलें शायद आपकी कार्यशील निर्देशिका के संबंध में बिन में होंगी, इसलिए यदि यह आपके प्रोजेक्ट फ़ोल्डर में है, तो जिस तरीके से आपको यह काम करना चाहिए, लेकिन रिसोर्सएस्ट्रीम नहीं मिलता है। वैकल्पिक रूप से, यदि आप जिस संसाधन को एक्सेस करना चाहते हैं वह एक स्रोत फ़ोल्डर में है, तो जब भी आप अपनी प्रोजेक्ट को साफ़ करते हैं तो इसे बिन में कॉपी किया जाएगा ताकि रिसोर्सएस्ट्रीम काम करे।

10

यह बहुत देर हो सकती है, यह कई अन्य लोगों की मदद कर सकती है। getClass (: ये परियोजना

हो रही संसाधनों डिफ़ॉल्ट पैकेज के रूप में विशिष्ट संकुल

// Getting Resource as file object 
File f = new File(getClass().getResource("/com/vivek/core/excludedir.properties").getFile()); 

// Getting resource as stream object 
InputStream in = getClass().getResourceAsStream("/com/vivek/core/excludedir.properties"); 

नोट से

// Getting Resource as file object 
File f = new File(getClass().getResource("/excludedir.properties").getFile()); 

// Getting resource as stream object 
InputStream in = getClass().getResourceAsStream("/excludedir.properties"); 

हो रही संसाधनों में उपलब्ध संसाधनों का उपयोग करने के तरीके हैं) एक गैर स्थैतिक कार्य है जिसे स्थैतिक संदर्भ के रूप में नहीं कहा जा सकता है। यदि आप स्थिर संदर्भ से कॉल करना चाहते हैं

YourClassName.class.getResource("/com/vivek/core/excludedir.properties").getFile() 

आशा है कि इससे मदद मिलती है। चीयर्स !!

+0

इसने मेरी बहुत मदद की। tx –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^