इस ट्यूटोरियल में, हम उदाहरणों की मदद से 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 (आधिकारिक जावा प्रलेखन) पर जाएँ।