जावा बाइटअरेइन्पुटइस्ट्रीम (उदाहरण के साथ)

इस ट्यूटोरियल में, हम उदाहरणों की मदद से Java ByteArrayInputStream और इसके तरीकों के बारे में जानेंगे।

ByteArrayInputStreamके वर्ग java.ioपैकेज इनपुट डेटा की एक सरणी (बाइट्स में) को पढ़ने के लिए इस्तेमाल किया जा सकता।

यह InputStreamअमूर्त वर्ग का विस्तार करता है ।

नोट : में ByteArrayInputStream, इनपुट स्ट्रीम बाइट्स के सरणी का उपयोग करके बनाई गई है। इसमें उस विशेष बाइट सरणी के डेटा को संग्रहीत करने के लिए एक आंतरिक सरणी शामिल है।

एक ByteArrayInputStream बनाएँ

बाइट सरणी इनपुट स्ट्रीम बनाने के लिए, हमें java.io.ByteArrayInputStreamपहले पैकेज को आयात करना होगा । एक बार जब हम पैकेज आयात करते हैं, तो यहां बताया गया है कि हम एक इनपुट स्ट्रीम कैसे बना सकते हैं।

 // Creates a ByteArrayInputStream that reads entire array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr); 

यहां, हमने एक इनपुट स्ट्रीम बनाई है जो arrसरणी से संपूर्ण डेटा पढ़ता है । हालाँकि, हम इनपुट स्ट्रीम भी बना सकते हैं जो सरणी से केवल कुछ डेटा पढ़ता है।

 // Creates a ByteArrayInputStream that reads a portion of array ByteArrayInputStream input = new ByteArrayInputStream(byte() arr, int start, int length); 

यहां इनपुट स्ट्रीम आरंभ स्थिति से शुरू होने वाले सरणी से लंबाई के बराबर बाइट्स की संख्या को पढ़ता है।

ByteArrayInputStream के तरीके

ByteArrayInputStreamवर्ग के लिए विभिन्न तरीकों के लिए कार्यान्वयन में पेश प्रदान करता है InputStreamवर्ग।

read () विधि

  • read() - इनपुट स्ट्रीम में मौजूद एरे से सिंगल बाइट को पढ़ता है
  • read(byte() array) - इनपुट स्ट्रीम से बाइट्स पढ़ता है और निर्दिष्ट सरणी में संग्रहीत करता है
  • read(byte() array, int start, int length) - स्थिति से शुरू होने वाले निर्दिष्ट सरणी में स्ट्रीम और स्टोर से लंबाई के बराबर बाइट्स की संख्या को पढ़ता है

उदाहरण: डेटा पढ़ने के लिए ByteArrayInputStream

 import java.io.ByteArrayInputStream; public class Main ( public static void main(String() args) ( // Creates an array of byte byte() array = (1, 2, 3, 4); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); System.out.print("The bytes read from the input stream: "); for(int i= 0; i < array.length; i++) ( // Reads the bytes int data = input.read(); System.out.print(data + ", "); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

 इनपुट स्ट्रीम से पढ़ने वाले बाइट्स: 1, 2, 3, 4, 

उपरोक्त उदाहरण में, हमने एक बाइट ऐरे इनपुट स्ट्रीम बनाया है जिसका नाम है input

 ByteArrayInputStream input = new ByteArrayInputStream(array); 

यहां, इनपुट स्ट्रीम में निर्दिष्ट सरणी से सभी डेटा शामिल हैं। इनपुट स्ट्रीम से डेटा पढ़ने के लिए, हमने read()विधि का उपयोग किया है।

उपलब्ध () विधि

इनपुट स्ट्रीम में उपलब्ध बाइट्स की संख्या प्राप्त करने के लिए, हम available()विधि का उपयोग कर सकते हैं । उदाहरण के लिए,

 import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( // Creates an array of bytes byte() array = ( 1, 2, 3, 4 ); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); // Returns the available number of bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 2 bytes from the input stream input.read(); input.read(); // Returns the available number of bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

 शुरुआत में उपलब्ध बाइट्स: 4 उपलब्ध बाइट्स अंत में: 2 

उपरोक्त उदाहरण में,

  1. हमने available()इनपुट स्ट्रीम में उपलब्ध बाइट्स की संख्या की जांच करने के लिए विधि का उपयोग किया है।
  2. हमने तब read()इनपुट स्ट्रीम से 2 बाइट्स पढ़ने के लिए 2 बार विधि का उपयोग किया है।
  3. अब, 2 बाइट्स पढ़ने के बाद, हमने उपलब्ध बाइट्स की जाँच की है। इस बार उपलब्ध बाइट्स में 2 की कमी हुई।

छोड़ना () विधि

बाइट्स की निर्दिष्ट संख्या को छोड़ने और छोड़ने के लिए, हम skip()विधि का उपयोग कर सकते हैं । उदाहरण के लिए,

 import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( // Create an array of bytes byte() array = ( 1, 2, 3, 4 ); try ( ByteArrayInputStream input = new ByteArrayInputStream(array); // Using the skip() method input.skip(2); System.out.print("Input stream after skipping 2 bytes: "); int data = input.read(); while (data != -1) ( System.out.print(data + ", "); data = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

 2 बाइट्स छोड़ने के बाद इनपुट स्ट्रीम: 3, 4, 

उपरोक्त उदाहरण में, हमने इनपुट स्ट्रीम से डेटा के 2 बाइट्स को स्किप करने के लिए स्किप () विधि का उपयोग किया है। इसलिए 1 और 2 इनपुट स्ट्रीम से नहीं पढ़े जाते हैं।

बंद () विधि

इनपुट स्ट्रीम को बंद करने के लिए, हम close()विधि का उपयोग कर सकते हैं ।

हालांकि, कक्षा close()में विधि का कोई प्रभाव नहीं है ByteArrayInputStream। हम इस वर्ग के तरीकों का उपयोग उस विधि के बाद भी कर सकते हैं close()जिसे कहा जाता है।

ByteArrayInputStream के अन्य तरीके

तरीके वर्णन
finalize() यह सुनिश्चित करता है कि close()विधि कहा जाता है
mark() इनपुट स्ट्रीम में स्थिति को चिह्नित करता है जिसमें डेटा पढ़ा गया है
reset() नियंत्रण को उस बिंदु पर इनपुट स्ट्रीम में लौटाता है जहाँ चिह्न सेट किया गया था
markSupported() जाँच करता है कि इनपुट स्ट्रीम समर्थन करती है mark()या नहींreset()

अधिक जानने के लिए, Java ByteArrayInputStream (आधिकारिक जावा प्रलेखन) पर जाएँ।

दिलचस्प लेख...