जावा InputStreamReader (उदाहरण के साथ)

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

पैकेज की InputStreamReaderश्रेणी का java.ioउपयोग बाइट्स में डेटा को वर्णों में डेटा में परिवर्तित करने के लिए किया जा सकता है।

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

InputStreamReaderवर्ग अन्य इनपुट धाराओं के साथ काम करता है। इसे बाइट धाराओं और चरित्र धाराओं के बीच एक पुल के रूप में भी जाना जाता है। इसका कारण यह है कि InputStreamReaderइनपुट के रूप में वर्ण से बाइट पढ़ता है।

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

एक InputStreamReader बनाएँ

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

 // Creates an InputStream FileInputStream file = new FileInputStream(String path); // Creates an InputStreamReader InputStreamReader input = new InputStreamReader(file); 

उपरोक्त उदाहरण में, हमने नामांकित फ़ाइल InputStreamReaderके साथ एक नामित इनपुट बनाया है FileInputStream

यहां, कुछ डिफ़ॉल्ट वर्ण एन्कोडिंग का उपयोग करके फ़ाइल में डेटा संग्रहीत किया जाता है।

हालाँकि, हम फ़ाइल में वर्ण एन्कोडिंग ( UTF8 या UTF16 ) के प्रकार को भी निर्दिष्ट कर सकते हैं ।

 // Creates an InputStreamReader specifying the character encoding InputStreamReader input = new InputStreamReader(file, Charset cs); 

यहां, हमने Charsetफ़ाइल में वर्ण एन्कोडिंग निर्दिष्ट करने के लिए कक्षा का उपयोग किया है ।

InputStreamReader के तरीके

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

read () विधि

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

उदाहरण के लिए, मान लें कि हमारे पास निम्न सामग्री के साथ input.txt नामक एक फ़ाइल है।

 This is a line of text inside the file. 

आइए इस फ़ाइल का उपयोग करके पढ़ने का प्रयास करें InputStreamReader

 import java.io.InputStreamReader; import java.io.FileInputStream; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a FileInputStream FileInputStream file = new FileInputStream("input.txt"); // Creates an InputStreamReader InputStreamReader input = new InputStreamReader(file); // Reads characters from the file input.read(array); System.out.println("Data in the stream:"); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

 स्ट्रीम में डेटा: यह फाइल के अंदर टेक्स्ट की एक लाइन है। 

उपरोक्त उदाहरण में, हमने फ़ाइल इनपुट स्ट्रीम का उपयोग करके एक इनपुट स्ट्रीम रीडर बनाया है। इनपुट स्ट्रीम रीडर फ़ाइल input.txt के साथ जुड़ा हुआ है ।

  FileInputStream file = new FileInputStream("input.txt"); InputStreamReader input = new InputStreamReader(file); 

फ़ाइल से वर्ण पढ़ने के लिए, हमने read()विधि का उपयोग किया है।

getEncoding () विधि

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

 import java.io.InputStreamReader; import java.nio.charset.Charset; import java.io.FileInputStream; class Main ( public static void main(String() args) ( try ( // Creates a FileInputStream FileInputStream file = new FileInputStream("input.txt"); // Creates an InputStreamReader with default encoding InputStreamReader input1 = new InputStreamReader(file); // Creates an InputStreamReader specifying the encoding InputStreamReader input2 = new InputStreamReader(file, Charset.forName("UTF8")); // Returns the character encoding of the input stream System.out.println("Character encoding of input1: " + input1.getEncoding()); System.out.println("Character encoding of input2: " + input2.getEncoding()); // Closes the reader input1.close(); input2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

 इनपुट 1 का वर्ण एन्कोडिंग: Cp1252 इनपुट 2 का चरित्र एन्कोडिंग: UTF8 

उपरोक्त उदाहरण में, हमने input1 और input2 नाम के 2 इनपुट स्ट्रीम रीडर बनाए हैं।

  • input1 वर्ण एन्कोडिंग निर्दिष्ट नहीं करता है। इसलिए यह getEncoding()विधि डिफ़ॉल्ट वर्ण एन्कोडिंग का विहित नाम देता है।
  • input2 चरित्र एन्कोडिंग, UTF8 निर्दिष्ट करता है । इसलिए getEncoding()विधि निर्दिष्ट वर्ण एन्कोडिंग देता है।

नोट : हमने Charset.forName()वर्ण एन्कोडिंग के प्रकार को निर्दिष्ट करने के लिए विधि का उपयोग किया है । अधिक जानने के लिए, जावा चारसेट (आधिकारिक जावा प्रलेखन) पर जाएँ।

बंद () विधि

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

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

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

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

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