बंद करने XMLStreamReader मैं इसे आरंभ कर रहा हूँ का उपयोग करने के पसंद नहीं - इस परXMLStreamReader खोला xml फ़ाइल
XMLInputFactory f = XMLInputFactory.newInstance();
XMLStreamReader reader = f.createXMLStreamReader(new FileReader(
"somefile.xml"));
पुनरावृत्ति की तरह -
if (reader.hasNext()) {
reader.next();
// do something with xml data
}
अंत में इसे पसंद को बंद -
reader.close();
यह एक सामान्य प्रवाह दिखता है लेकिन मुझे कुछ अजीब व्यवहार दिखाई दे रहा है। पाठक को बंद करने के बाद भी, ओएस मुझे जावा प्रोग्राम से बाहर निकलने तक xml फ़ाइल को हटाने/स्थानांतरित करने की अनुमति नहीं देता है। Win2k8-server पर चलाते समय, मुझे त्रुटि संदेश मिलता है कि java.exe इस xml फ़ाइल का उपयोग कर रहा है।
- मैं स्पष्ट रूप से प्रत्येक FileReader के करीबी को बंद करने की जरूरत है -
तो मैं सवालों की जोड़ी है?
- मैं जो जावा कोड पथ इस फाइल को खोलने के लिए संभाल रखने है पता कर सकते हैं कैसे।
@ XMLStreamReader के करीबी(), मैं निम्नलिखित मिल के प्रलेखन देख रहे हैं - "इस रीडर के साथ जुड़े किसी भी संसाधनों को मुक्त कर देते इस विधि अंतर्निहित इनपुट स्रोत को बंद नहीं करता है।।"
"इनपुट स्रोत अंतर्निहित" का अर्थ क्या है? क्यों कि पाठक के करीबी द्वारा() बंद नहीं है?
स्पष्ट रूप से [करीब()] विधि (http://download.oracle.com/javase/6/docs/api/javax/xml/stream/XMLStreamReader.html#close()) के एपीआई कहें कि यह अंतर्निहित _Reader_ ऑब्जेक्ट को बंद नहीं करता है। शायद आपके उत्तर में एपीआई से वाक्य उद्धृत करें। – Progman
मेरे दूसरे प्रश्न पर कुछ भी - मैं यह कैसे पता लगा सकता हूं कि कौन सा जावा कोड पथ इस फ़ाइल को संभाल रहा है? – siddharth178