2009-04-22 7 views
11

फ़ंक्शन java.io.File.toURL() क्यों हटाया गया है? मुझे Toolkit.createImage() पर एक यूआरएल पास करने की आवश्यकता है जो यूआरएल ऑब्जेक्ट स्वीकार करता है। जावाडोक ने मुझे File.toURI().toURL() का उपयोग करने की सिफारिश की। हालांकि:File.toURL() बहिष्कृत?

C:\Documents and settings\Administrator\...

हो जाता है:

C:\Documents%20and%20settings\Administrator\...

जो स्पष्ट रूप से गलत फ़ाइल स्थान है। मुझे फ़ाइल से बचने के लिए URL.toURL() मिला है, हालांकि इसे बहिष्कृत किया गया है। हालांकि यह काम करता है मैं बहिष्कृत कार्यों का उपयोग करने से डर रहा हूँ। एक ऐसी विधि क्या है जिसे बहिष्कृत नहीं किया गया है जो वही काम करता है?

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

spriteImage1 = tkit.createImage(new File("./images/sprite1.png").getCanonicalFile().toURL()); 

संपादित करें: अभी मेरी कोड की तरह दिखता है मैं अपने .jar फ़ाइल के बाहर एक फ़ोल्डर से एक छवि बनाने के लिए की जरूरत है। मुझे एक सापेक्ष स्थान की आवश्यकता होगी ("./images/sprite1.png")। विधि बनाने इमेज (स्ट्रिंग) एक अपवाद फेंकता है जब मैं इसे सापेक्ष पथ देने की कोशिश करता हूं।

+1

यह बिल्कुल स्पष्ट नहीं है कि आपको क्यों लगता है कि बच निकला संस्करण गलत है। माना जाता है कि मैं शायद 20% की बजाय + उम्मीद करता हूं, लेकिन मुझे उम्मीद है कि यह अभी भी काम करेगा। –

+4

दूसरा फ़ाइल नहीं होना चाहिए: /// सी:/दस्तावेज़% 20 और% 20 सेटिंग्स/व्यवस्थापक/...? – Powerlord

+0

वास्तव में दूसरा संस्करण मुझे इमेज() बनाने के लिए पारित होने पर अपवाद देता है जबकि पहला काम ठीक है। और हाँ यह फ़ाइल है: /// ... – Lucky

उत्तर

14

यह this bug के अनुसार विशेष वर्णों को सही तरीके से संभाल नहीं करता है।

5

आप createImage फ़ंक्शन का उपयोग क्यों नहीं करते हैं, इसके बजाय takes a String फ़ाइल नाम?

1

आप विकल्प के रूप में ImageIO का उपयोग करने पर विचार कर सकते हैं।

27

उपयोग करें: यूआरएल url2 = file.toURI()। ToURL();

+1

वही नहीं है, क्योंकि रिक्त स्थान URL को एन्कोड किया जाता है। – user2340939

0

मैं लगता है कि आप इस तरह से यूआरएल लिखना चाहिए

सी:/दस्तावेज़ और सेटिंग्स/व्यवस्थापक/...

इस

सी में

नहीं: \ दस्तावेज़ और सेटिंग्स \ प्रशासक ...

3

मुझे लगता है कि राघ इस सवाल का जवाब टी इस लिंक http://www.jguru.com/faq/view.jsp?EID=1280051

ऊपर के लिंक में उजागर रूप में सामने आ रहा है, यह करने के लिए सही तरीका है:

// Supposing f is the referenced file in code and we want to 
// get an URL instance without deprecation warnings. 
URL externalForm = f.toURI().toURL(); 

वहाँ MalformedURLException के लिए कोई पकड़ है के रूप में प्रश्न के बारे में है विधि file.toURL() के बहिष्कार।

उम्मीद करता है कि इससे मदद मिलती है।

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

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