html
Java में Scanner का उपयोग करके टेक्स्ट फ़ाइल पढ़ना: एक संपूर्ण मार्गदर्शिका
सामग्री तालिका
- परिचय - पृष्ठ 1
- Scanner Class को समझना - पृष्ठ 3
- अपना Java प्रोजेक्ट सेट करना - पृष्ठ 7
- Scanner के साथ फ़ाइल पढ़ना लागू करना - पृष्ठ 11
- Try-Catch के साथ एक्सेप्शन हैंडल करना - पृष्ठ 15
- Scanner और BufferedReader की तुलना - पृष्ठ 19
- आउटपुट और निष्पादन - पृष्ठ 23
- निष्कर्ष - पृष्ठ 27
परिचय
फ़ाइलों को पढ़ना कई Java अनुप्रयोगों में एक मौलिक ऑपरेशन है, जो डेवलपर्स को विभिन्न स्रोतों से डेटा संसाधित करने में सक्षम बनाता है। यह मार्गदर्शिका Java में टेक्स्ट फ़ाइलों को पढ़ने के लिए Scanner class के उपयोग में गहराई से जाती है, शुरुआती लोगों और बुनियादी ज्ञान वाले डेवलपर्स के लिए उपयुक्त एक स्पष्ट, चरण-दर-चरण दृष्टिकोण प्रदान करती है।
Java में फ़ाइल पढ़ने का महत्व
- डेटा प्रोसेसिंग: उन अनुप्रयोगों के लिए आवश्यक जो इनपुट डेटा को प्रोसेस करते हैं।
- कॉन्फ़िगरेशन प्रबंधन: अनुप्रयोग मापदंड सेट करने के लिए कॉन्फ़िगरेशन फ़ाइलों को पढ़ना।
- लॉगिंग: मॉनिटरिंग और डिबगिंग के लिए लॉग बनाए रखना।
Scanner का उपयोग करने के फायदे और नुकसान
विशेषता | Scanner | BufferedReader |
---|---|---|
उपयोग की सरलता | सरल और सहज | अधिक बायलरप्लेट की आवश्यकता |
प्रदर्शन | बड़ी फ़ाइलों के लिए धीमा | बड़ी फ़ाइलों के लिए तेज |
कार्यात्मकता | टोकन-आधारित पढ़ना | लाइन-आधारित पढ़ना |
एक्सेप्शन हैंडलिंग | try-with-resources के साथ सरल | स्पष्टीकरण की आवश्यकता |
Scanner का उपयोग कब करें
- जब कार्यान्वयन की सरलता प्राथमिकता हो।
- छोटी से मध्यम आकार की टेक्स्ट फ़ाइलों के लिए।
- जब टोकन-आधारित पार्सिंग की आवश्यकता हो।
Scanner से बचना कब चाहिए
- जब बड़ी फ़ाइलों के साथ निपटना हो जहाँ प्रदर्शन महत्वपूर्ण हो।
- जब बिना टोकनाइज़ेशन के लाइन-दर-लाइन पढ़ना पर्याप्त हो।
Scanner Class को समझना
Java में Scanner class एक बहुमुखी यूटिलिटी है primitive types और strings को नियमित एक्सप्रेशन का उपयोग करके पार्स करने के लिए। यह विशेष रूप से विभिन्न स्रोतों, शामिल फ़ाइलों सहित, से इनपुट पढ़ने के लिए उपयोगी है।
मुख्य अवधारणाएं
- टोकनाइज़ेशन: डिलिमिटर्स के आधार पर इनपुट को टोकन में विभाजित करना।
- इनपुट स्ट्रीम्स: Scanner फ़ाइलों, इनपुट स्ट्रीम्स, और strings से पढ़ सकता है।
- नियमित एक्सप्रेशन: जटिल पार्सिंग पैटर्न की अनुमति देता है।
Scanner क्यों चुनें?
- सरलता: डेटा पढ़ने और पार्स करने के लिए न्यूनतम कोड आवश्यक।
- फ्लेक्सिबिलिटी: कई डेटा स्रोतों और प्रकारों का समर्थन करता है।
अपना Java प्रोजेक्ट सेट करना
कोड कार्यान्वयन में गोता लगाने से पहले, अपने प्रोजेक्ट वातावरण को सेट करना महत्वपूर्ण है।
प्रोजेक्ट संरचना
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
S14L08 - Read a text file in Java using Scanner/ ├── pom.xml ├── src/ │ └── main/ │ └── java/ │ └── org/ │ └── studyeasy/ │ └── Main.java ├── studyeasy/ │ └── test.txt └── target/ └── classes/ └── org/ └── studyeasy/ └── Main.class |
आवश्यक फ़ाइलें
- pom.xml: प्रोजेक्ट निर्भरताओं के लिए Maven कॉन्फ़िगरेशन फ़ाइल।
- Main.java: मुख्य Java class जिसमें फ़ाइल पढ़ने का लॉजिक है।
- test.txt: पढ़ने के लिए नमूना टेक्स्ट फ़ाइल।
Maven सेट करना
सुनिश्चित करें कि Maven आपके सिस्टम पर स्थापित और कॉन्फ़िगर है। ऊपर दिखाए गए अनुसार प्रोजेक्ट डायरेक्टरी बनाएं और आवश्यक फ़ाइलें शामिल करें।
Scanner के साथ फ़ाइल पढ़ना लागू करना
आइए Java में Scanner class का उपयोग करके टेक्स्ट फ़ाइल पढ़ने की प्रक्रिया के माध्यम से चलते हैं।
चरण 1: आवश्यक पैकेज इम्पोर्ट करना
फ़ाइल हैंडलिंग और एक्सेप्शन प्रबंधन के लिए आवश्यक Java classes को इम्पोर्ट करके शुरू करें।
1 2 3 |
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; |
चरण 2: File ऑब्जेक्ट के साथ Scanner प्रारंभ करना
चाहे गए टेक्स्ट फ़ाइल की ओर इंगित करने वाले File ऑब्जेक्ट को पास करके एक Scanner ऑब्जेक्ट बनाएं।
1 |
Scanner sc = new Scanner(new File("studyeasy/test.txt")); |
चरण 3: फ़ाइल को लाइन दर लाइन पढ़ना
एक लूप का उपयोग करके प्रत्येक लाइन फ़ाइल में पढ़ें जब तक कि अंत न पहुँच जाए।
1 2 3 4 |
while (sc.hasNextLine()) { String line = sc.nextLine(); System.out.println(line); } |
पूर्ण कोड उदाहरण
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package org.studyeasy; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Main { public static void main(String[] args) { try { // Initialize Scanner with the file Scanner sc = new Scanner(new File("studyeasy/test.txt")); // Read and print each line while (sc.hasNextLine()) { String line = sc.nextLine(); System.out.println(line); } // Close the scanner sc.close(); } catch (FileNotFoundException e) { System.out.println("File not found!"); e.printStackTrace(); } } } |
कोड में टिप्पणियाँ:
-
1Scanner sc = new Scanner(new File("studyeasy/test.txt"));
निर्दिष्ट फ़ाइल से पढ़ने के लिए Scanner को प्रारंभ करता है। -
1while (sc.hasNextLine()) { ... }
जब तक कोई और लाइन नहीं हो, तब तक पढ़ना जारी रखता है। -
1String line = sc.nextLine();
फ़ाइल से अगली लाइन प्राप्त करता है। -
1System.out.println(line);
लाइन को कंसोल पर आउटपुट करता है।
Try-Catch के साथ एक्सेप्शन हैंडल करना
मजबूत अनुप्रयोग संभावित त्रुटियों को सहजता से संभालते हैं। जब फ़ाइल I/O से निपटते हैं, तो विभिन्न एक्सेप्शन्स हो सकते हैं, जैसे कि फ़ाइल न मिलने पर।
Try-With-Resources का उपयोग करना
Java का try-with-resources स्टेटमेंट सुनिश्चित करता है कि प्रत्येक संसाधन स्टेटमेंट के अंत में बंद हो जाए।
1 2 3 4 5 6 7 8 9 |
try (Scanner sc = new Scanner(new File("studyeasy/test.txt"))) { while (sc.hasNextLine()) { String line = sc.nextLine(); System.out.println(line); } } catch (FileNotFoundException e) { System.out.println("File not found!"); e.printStackTrace(); } |
फायदे:
- स्वचालित संसाधन प्रबंधन: Scanner अपने आप बंद हो जाता है।
- साफ़ कोड: स्पष्ट
sc.close()
की आवश्यकता समाप्त हो जाती है।
Scanner और BufferedReader की तुलना
दोनों Scanner और BufferedReader Java में टेक्स्ट फ़ाइलों को पढ़ने के लिए उपयोग किए जाते हैं, लेकिन उनमें स्पष्ट अंतर हैं।
Scanner
- फायदे:
- सरल सिंटैक्स के साथ उपयोग में आसान।
- विभिन्न डेटा प्रकारों के पार्सिंग का समर्थन करता है।
- छोटी से मध्यम आकार की फ़ाइलों के लिए उपयुक्त।
- नुकसान:
- BufferedReader की तुलना में धीमा प्रदर्शन।
- बड़ी फ़ाइलों के लिए अधिक मेमोरी खपत।
BufferedReader
- फायदे:
- विशेष रूप से बड़ी फ़ाइलों के लिए तेज़ पढ़ना।
- कुशल मेमोरी उपयोग।
- बड़े डेटा स्ट्रीम पढ़ने के लिए आदर्श।
- नुकसान:
- कोड अधिक ब्योमय है।
- पार्सिंग के बिना लाइनों को पढ़ने तक सीमित।
तुलना तालिका
विशेषता | Scanner | BufferedReader |
---|---|---|
उपयोग की सरलता | सरल और सहज | अधिक बायलरप्लेट की आवश्यकता |
प्रदर्शन | बड़ी फ़ाइलों के लिए धीमा | बड़ी फ़ाइलों के लिए तेज |
कार्यात्मकता | टोकन-आधारित पढ़ना | लाइन-आधारित पढ़ना |
एक्सेप्शन हैंडलिंग | try-with-resources के साथ सरल | स्पष्टीकरण की आवश्यकता |
आउटपुट और निष्पादन
प्रदत्त Java प्रोग्राम को निष्पादित करने पर test.txt
की सामग्री पढ़ी जाएगी और कंसोल में प्रदर्शित की जाएगी।
नमूना test.txt
सामग्री
1 2 3 4 5 6 7 8 9 10 |
Hello World Isn't this world a beautiful place to live. Peace!!... |
अपेक्षित कंसोल आउटपुट
1 2 3 4 5 6 7 8 9 10 |
Hello World Isn't this world a beautiful place to live. Peace!!... |
व्याख्या
test.txt
फ़ाइल में प्रत्येक लाइन को Scanner द्वारा क्रमिक रूप से पढ़ा जाता है और कंसोल में प्रिंट किया जाता है, जिससे लागू किए गए कोड की प्रभावशीलता प्रदर्शित होती है।
निष्कर्ष
Java में Scanner class का उपयोग करके टेक्स्ट फ़ाइलों को पढ़ना एक सीधा प्रक्रिया है, विशेष रूप से शुरुआती और बुनियादी ज्ञान वाले डेवलपर्स के लिए उपयुक्त। इस मार्गदर्शिका ने आपके प्रोजेक्ट को सेट करने से लेकर एक्सेप्शन हैंडलिंग के साथ मजबूत फ़ाइल पढ़ने को लागू करने तक एक व्यापक अवलोकन प्रदान किया है।
मुख्य बिंदु:
- Scanner फ़ाइल पढ़ने और पार्स करने के लिए सरलता और उपयोग में आसानी प्रदान करता है।
- उचित एक्सेप्शन हैंडलिंग यह सुनिश्चित करती है कि आपका अनुप्रयोग त्रुटियों को सहजता से संभाल सकता है।
- Scanner और BufferedReader के बीच के अंतर को समझना आपके लिए आवश्यक उपकरण चुनने में मदद करता है।
Java की फ़ाइल I/O क्षमताओं की शक्ति को अपनाएं ताकि आप अपने अनुप्रयोगों की कार्यक्षमता और विश्वसनीयता बढ़ा सकें।
ध्यान दें: यह लेख AI द्वारा उत्पन्न किया गया है।