कम्प्युटरकार्यक्रम

Java: InputStream। इनपुट प्रवाहको

Java, धेरै आधुनिक कार्यक्रम भाषाहरु जस्तै, डाटा इनपुट प्रवाहको कार्यान्वयन समर्थन गर्दछ। जावा मा InputStream बाइट प्रवाहको लागि आधार वर्ग छ। यो वर्ग, कार्यक्रम को पाठ्यक्रम मा हामी यो एक उदाहरण सिर्जना गर्न सक्नुहुन्छ छैन कि, अमूर्त छ। तथापि, कब प्याकेज हकदार र InputStream को कार्यक्षमता विस्तार कि कक्षाहरू एक सेट छ। आफ्नो कोड यो वर्ग प्रयोग गर्न, यसलाई java.io.InputStream प्याकेज बाट आयात हुनुपर्छ। अर्को, हामी InputStream वर्ग प्रदान गर्दछ आधारभूत, र यो लागू गर्ने मुख्य कक्षाहरू विचार गर्नुहोस्।

InputStream वर्ग विधिहरू

को InputStream वर्ग विधिहरू एक विस्तृत अध्ययन गर्न अघि बढ्नु अघि, यो Closeable र AutoCloseable इन्टरफेस लागू उल्लेख गर्नुपर्छ। इन्टरफेस Closeable यसलाई प्रवाह संग काम पूरा मा आवश्यक बन्द हुनुपर्छ भनेर हामीलाई बताउँछ। यो एक विधि नजिक प्रयोग गरिन्छ ()। त्रुटि को मामला मा InputStream वर्ग विधिहरू को सबै भन्दा देखि एक अपवाद प्रकार IOException, एक प्रयास ब्लक र एक विधि नजिक () सञ्चालन यसलाई शरीर प्रयास सञ्चालनको परिणाम आधारमा tripped छ भनेर अन्तमा एक एकाइ बनाउन आवश्यक सबै सञ्चालन उत्पन्न गर्छ।

AutoCloseable इन्टरफेस एकदम यसलाई स्वचालित रूपमा बन्द () विधि काम गर्न अनुमति दिन्छ र अन्तमा ब्लक आफ्नो कोड थप्न भएकोले, कोड मर्मतका को मात्रा कम गर्छ। तपाईं जावा को सातौं वा पछि संस्करण प्रयोग गर्नुहुन्छ भने, एक InputStream सबै सञ्चालन प्रवाह हाबी बन्द गर्न जो संसाधन तथाकथित प्रयास मा राखिएको गर्न सकिन्छ।

InputStream वर्ग को आधारभूत विधिहरू विचार गर्नुहोस्:

  • int उपलब्ध () - बाइट पढ्ने नम्बर फिर्ता;
  • int पढ्न () - स्रोत को वर्तमान बाइट लिन्छ र पूर्णांक प्रतिनिधित्व रिटर्न; सबै बाइट पढ्न भने, -1 फिर्ता गरिएको छ;
  • int पढ्न (बाइट [] बफर) - को बाइट उपलब्ध मा एक बाइट सरणी प्रकार को रूप मा बफर भने पढिएका (बाइट संख्या तोकिएको आकार बराबर बफर पढ्नुहोस् र बाइट को संख्या सफल बाकी रिटर्न र सबै उपलब्ध बाइट्स पढ्न भने, -1 रिटर्न);
  • int पढ्न (बाइट [] बफर, int अफसेट, बाइट को int नम्बर) - अघिल्लो विधि को अधिभार, एउटै गर्छ, तर एक निर्दिष्ट "अफसेट" स्थिति संग र "बाइट संख्या" मा सेट रूपमा धेरै लेखिएको;
  • लामो छाड्नुहोस् (लामो बाइट गणना) - बाइट रुक को संख्या र छुटेका वास्तविक संख्या फर्काउँछ।

InputStream धेरै कक्षाहरू विभिन्न स्रोतहरू र डाटा को प्रकार काम गर्न डिजाइन कार्यान्वयन गरिएको छ। तल उत्तराधिकार रूख देखाउँछ।

फाइलहरू पढेर

कार्यान्वयन छ फाइलहरू देखि कक्षा FileInputStream डाटा पढ्न बाइट प्रवाह। एक तर्कको रूपमा फाइल नाम यसको निर्माता गर्न पारित, बाइट, कक्षा एक उदाहरणका सिर्जना गर्न पर्याप्त पढेर लागि फाइल खोल्न। फाइल नाम हस्तान्तरण गरिएको छ भने अवस्थित छैन, यो प्रकार FileNotFoundException एक अपवाद फेंक हुनेछ।

एक सफल फाइल खोल्न को मामला मा, तिनीहरूलाई काम रूपमा उत्तराधिकारी FileInputStream InputStream छ, बाहिर छ माथि वर्णन विधिहरू प्रयोग गरेर।

आदिम डेटा प्रकार पढ्दै

माथिको उदाहरण कुन प्रतीक रूपमा व्याख्या गर्न सकिन्छ, बाइट मान संग काम वर्णन गर्दछ। तर के हामी एक पूर्णांक, आंशिक वा एक मानमा पढ्न आवश्यक भएमा? Java InputStream यो गर्न अप्रत्यक्ष कक्षा DataInputStream विस्तार। यो वर्ग एक निर्माता तर्कको रूपमा सिर्जना मा यो पास छ जो InputStream लागि एक wrapper छ। मुद्दा यस प्रकारको बाइनरी फारम मा डाटा पढ्छन्।

DataInputStream पनि DataInput इन्टरफेस र आदिम डेटा प्रकार पढेर यसको विधि लागू। तल तीमध्ये एक सूची छ।

विधि नाम आफु को लागि कुरा - तिनीहरूलाई प्रत्येक एक निश्चित डाटा प्रकार पढ्न डिजाइन गरिएको छ।

Buffered इनपुट स्ट्रिम

Buffered स्ट्रिम डाटा पढाइ जावा मा BufferedInputStream वर्ग बुझे छ। InputStream यो वर्ग द्वारा र्याप छ। यो वर्ग तपाईं धेरै बाइट तर एक नै समय मा पढ्न अनुमति दिने, को बफर स्ट्रिम complements। यो एकदम सञ्चालन प्रदर्शन सुधार गर्न सम्भव बनाउँछ। BufferedInputStream संतान InputStream एक अप्रत्यक्ष छ र यसरी माथि उल्लिखित सबै विधिहरू विरासत।

यो वर्ग दुई भवन निर्माताहरु छ:

  • BufferedInputStream (InputStream इनपुट स्ट्रिम);
  • BufferedInputStream (InputStream इनपुट धारा, int बफर आकार)

को डिजाइनर को हस्ताक्षर पहिलो पूर्वनिर्धारित बफर आकार सेट बुझे गर्न सकिन्छ, र दोस्रो स्वयं सेट गर्न सम्भव छ।

निष्कर्षमा

हामी InputStream आधारभूत बोध समीक्षा। तपाईं स्ट्रिङ () गर्न Java InputStream मा एक स्ट्रिङ गर्न प्राप्त बाइट रूपान्तरण गर्न आवश्यक छ भने, दुर्भाग्यवश, छैन, यो अपाचे कमन्स पुस्तकालयबाट विशेष उपकरण, जस्तै IOUtils प्रयोग गर्न हुनेछ त लोडमा छ।

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ne.atomiyme.com. Theme powered by WordPress.