इनपुट स्ट्रीम का पुन: उपयोग
एक ही इनपुट स्ट्रीम को दो बार पढ़ना विभिन्न परिदृश्यों में उपयोगी हो सकता है। ऐसा ही एक परिदृश्य एक दूरस्थ छवि को लोड करना, उसे स्थानीय रूप से सहेजना और फिर सहेजी गई छवि तक पहुंचना है। इसे प्राप्त करने के लिए, नई इनपुट स्ट्रीम बनाने के बजाय उसी इनपुट स्ट्रीम का पुन: उपयोग करना अधिक कुशल है।
किसी इनपुट स्ट्रीम का पुन: उपयोग करने का एक तरीका इसकी सामग्री को बाइट सरणी में कॉपी करना है। यह org.apache.commons.io.IOUtils.copy विधि का उपयोग करके किया जा सकता है। परिणामी बाइट सरणी का उपयोग कई ByteArrayInputStream ऑब्जेक्ट बनाने के लिए किया जा सकता है, जिसे बार-बार पढ़ा जा सकता है। ); org.apache.commons.io.IOUtils.copy(in, baos); बाइट[] बाइट्स = baos.toByteArray(); // विकल्प 1: बाइट सरणी को कई बार पढ़ें जबकि (needToReadAgain) { ByteArrayInputStream bais = new ByteArrayInputStream(बाइट्स); yourReadMethodHere(bais); } //विकल्प 2: इनपुट स्ट्रीम को दोबारा पढ़ने के लिए रीसेट करें ByteArrayInputStream bais = new ByteArrayInputStream(बाइट्स); जबकि (needToReadAgain) { bai.reset(); yourReadMethodHere(bais); }
कृपया ध्यान दें कि यह दृष्टिकोण बड़ी या अनंत स्ट्रीम के लिए उपयुक्त नहीं हो सकता है, क्योंकि इसमें स्ट्रीम सामग्री को मेमोरी में कॉपी करना शामिल है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3