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

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

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

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

इससे पहले कि हम इसके बारे में जानें FileInputStream, जावा फाइल के बारे में जानना सुनिश्चित करें।

एक FileInputStream बनाएँ

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

1. फ़ाइल करने के लिए पथ का उपयोग करना

 FileInputStream input = new FileInputStream(stringPath); 

यहां, हमने एक इनपुट स्ट्रीम बनाई है जो पथ द्वारा निर्दिष्ट फ़ाइल से जुड़ी होगी।

2. फ़ाइल का एक ऑब्जेक्ट का उपयोग करना

 FileInputStream input = new FileInputStream(File fileObject); 

यहां, हमने एक इनपुट स्ट्रीम बनाई है जिसे फ़ाइल द्वारा निर्दिष्ट फ़ाइल से जोड़ा जाएगा fileObject

FileInputStream के तरीके

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

read () विधि

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

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

 This is a line of text inside the file. 

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

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

 फ़ाइल में डेटा: यह फ़ाइल के अंदर पाठ की एक पंक्ति है। 

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

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

फ़ाइल से डेटा पढ़ने के लिए, हमने read()लूप के अंदर की विधि का उपयोग किया है ।

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

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

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

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

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

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

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

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

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

आउटपुट

 5 बाइट्स लंघन के बाद इनपुट स्ट्रीम: फ़ाइल के अंदर पाठ की एक पंक्ति है। 

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

बंद () विधि

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

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

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

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

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

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