Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में फ़ाइलें कैसे पढ़ें

जावा फाइलों को पढ़ने के लिए कई तरीके प्रदान करता है। इनमें से प्रत्येक विधि विभिन्न स्थितियों में विभिन्न प्रकार की फाइलों को पढ़ने के लिए उपयुक्त है। कुछ लंबी फ़ाइलों को पढ़ने के लिए बेहतर हैं, अन्य छोटी फ़ाइलों को पढ़ने के लिए बेहतर हैं, आदि।

इस ट्यूटोरियल में, हम फाइलों को पढ़ने के लिए निम्नलिखित जावा क्लासेस का उपयोग करेंगे

  • बफ़र्ड रीडर
  • फ़ाइलें
  • स्कैनर

पूरे ट्यूटोरियल के दौरान, हम src . में संग्रहीत फ़ाइल का उपयोग कर रहे हैं निर्देशिका जहां फ़ाइल का पथ src/file.txt . है ।

आगे बढ़ने से पहले इस फ़ाइल में पाठ की कई पंक्तियाँ संग्रहीत करें।

नोट:सर्वोत्तम कोडिंग प्रथाओं से चिपके रहने के लिए आपको इन कार्यान्वयनों का उपयोग करते समय त्रुटियों को ठीक से संभालना होगा।

बफ़रेड रीडर के साथ जावा में टेक्स्ट फ़ाइलें पढ़ना

BufferedReader कक्षा एक चरित्र-इनपुट स्ट्रीम पढ़ता है। यह पढ़ने की प्रक्रिया को और अधिक कुशल बनाने के लिए 8 KB के डिफ़ॉल्ट आकार के साथ एक बफर में वर्णों को बफ़र करता है। यदि आप किसी फ़ाइल को पंक्ति दर पंक्ति पढ़ना चाहते हैं, तो BufferedReader का उपयोग करना एक अच्छा विकल्प है।

BufferedReader बड़ी फ़ाइलों को पढ़ने में कुशल है।

import java.io.*;

public class FileReaderWithBufferedReader {

    public static void main(String[] args) throws IOException{We
        String file = "src/file.txt";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(file));

        String curLine;
        while ((curLine = bufferedReader.readLine()) != null){
            //process the line as required
            System.out.println(curLine);
        }
        bufferedReader.close();
    }
}

readline() फ़ाइल के अंत तक पहुंचने पर विधि शून्य हो जाती है।

नोट:पढ़ना समाप्त होने पर फ़ाइल को बंद करना न भूलें।

बफ़रेडर के साथ जावा में UTF-8 एन्कोडेड फ़ाइल पढ़ना

हम BufferedReader . का उपयोग कर सकते हैं UTF-8 एन्कोडेड फ़ाइल पढ़ने के लिए कक्षा।

इस बार, हम एक InputStreamReader pass पास करते हैं BufferedReader creating बनाते समय वस्तु उदाहरण।

import java.io.*;

public class EncodedFileReaderWithBufferedReader {

    public static void main(String[] args) throws IOException {
        String file = "src/fileUtf8.txt";
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));

        String curLine;
        while ((curLine = bufferedReader.readLine()) != null){
            //process the line as you require
            System.out.println(curLine);
        }
    }
}

फ़ाइल पढ़ने के लिए Java Files Class का उपयोग करना

जावा Files जावा एनआईओ में जावा 7 में पेश किया गया वर्ग, फाइलों पर चलने वाली स्थिर विधियों से युक्त है।

Files का उपयोग करना वर्ग, आप किसी फ़ाइल की पूरी सामग्री को एक सरणी में पढ़ सकते हैं। यह छोटी फ़ाइलों को पढ़ने के लिए इसे एक अच्छा विकल्प बनाता है।

आइए देखें कि हम इन दोनों परिदृश्यों में Files वर्ग का उपयोग कैसे कर सकते हैं।

फ़ाइल वर्ग के साथ जावा में छोटी फ़ाइलें पढ़ना

readAllLines() Files . की विधि वर्ग फ़ाइल की संपूर्ण सामग्री को पढ़ने की अनुमति देता है और प्रत्येक पंक्ति को एक सरणी में स्ट्रिंग के रूप में संग्रहीत करता है।

आप Path का उपयोग कर सकते हैं Files . के बाद से फ़ाइल का पथ प्राप्त करने के लिए class वर्ग Path स्वीकार करता है फ़ाइल का उद्देश्य।

import java.io.IOException;
import java.nio.file.*;
import java.util.*;

public class SmallFileReaderWithFiles {

    public static void main(String[] args) throws IOException {
        String file = "src/file.txt";
        Path path = Paths.get(file);
        List<String> lines = Files.readAllLines(path);
    }
}

आप readAllBytes() का उपयोग कर सकते हैं फ़ाइल में संग्रहीत डेटा को स्ट्रिंग सरणी के बजाय बाइट सरणी में पुनर्प्राप्त करने के लिए।

byte[] bytes = Files.readAllBytes(path);

फ़ाइल वर्ग के साथ जावा में बड़ी फ़ाइलें पढ़ना

अगर आप Files . के साथ एक बड़ी फ़ाइल पढ़ना चाहते हैं वर्ग, आप newBufferedReader() . का उपयोग कर सकते हैं BufferedReader . का उदाहरण प्राप्त करने की विधि एक BufferedReader . का उपयोग करके फ़ाइल को लाइन दर पंक्ति पढ़ें और क्लास करें ।

import java.io.*;
import java.nio.file.*;

public class LargeFileReaderWithFiles {

    public static void main(String[] args) throws IOException {
        String file = "src/file.txt";
        Path path = Paths.get(file);
        BufferedReader bufferedReader = Files.newBufferedReader(path);

        String curLine;
        while ((curLine = bufferedReader.readLine()) != null){
            System.out.println(curLine);
        }
        bufferedReader.close();
    }
}

Files.lines के साथ फ़ाइलें पढ़ना ()

जावा 8 ने फाइल क्लास में पूरी फाइल को Stream में पढ़ने के लिए एक नया तरीका पेश किया है तार की।

import java.io.IOException;
import java.nio.file.*;
import java.util.stream.Stream;

public class FileReaderWithFilesLines {

    public static void main(String[] args) throws IOException {
        String file = "src/file.txt";
        Path path = Paths.get(file);
        Stream<String> lines = Files.lines(path);

        lines.forEach(s -> System.out.println(s));
        lines.close();
    }
}

स्कैनर के साथ जावा में टेक्स्ट फ़ाइलें पढ़ना

Scanner वर्ग किसी दिए गए सीमांकक का उपयोग करके फ़ाइल की सामग्री को भागों में तोड़ता है और इसे भाग-दर-भाग पढ़ता है। यह दृष्टिकोण एक सीमांकक द्वारा अलग की गई सामग्री को पढ़ने के लिए सबसे उपयुक्त है।

उदाहरण के लिए, Scanner वर्ग सफेद रिक्त स्थान से अलग किए गए पूर्णांकों की सूची या अल्पविराम द्वारा अलग किए गए तारों की सूची पढ़ने के लिए आदर्श है।

Scanner . का डिफ़ॉल्ट डिलीमीटर वर्ग सफेद जगह है। लेकिन आप सीमांकक को किसी अन्य वर्ण या रेगुलर एक्सप्रेशन पर सेट कर सकते हैं। इसके कई अगले तरीके भी हैं, जैसे next() , nextInt() , nextLine() , और nextByte() , सामग्री को विभिन्न प्रकारों में बदलने के लिए।

import java.io.IOException;
import java.util.Scanner;
import java.io.File;

public class FileReaderWithScanner {

    public static void main(String[] args) throws IOException{
        String file = "src/file.txt";
        Scanner scanner = new Scanner(new File(file));
        scanner.useDelimiter(" ");

        while(scanner.hasNext()){
            String next = scanner.next();
            System.out.println(next);
        }
        scanner.close();
    }
}

उपरोक्त उदाहरण में, हम सीमांकक को व्हाइटस्पेस पर सेट करते हैं और next() . का उपयोग करते हैं व्हाइटस्पेस द्वारा अलग की गई सामग्री के अगले भाग को पढ़ने की विधि।

एक संपूर्ण फ़ाइल पढ़ना

आप Scanner का उपयोग कर सकते हैं बिना लूप चलाए पूरी फाइल को एक बार में पढ़ने के लिए क्लास। आपको “\\Z” . पास करना होगा इसके लिए सीमांकक के रूप में।

scanner.useDelimiter("\\Z");
System.out.println(scanner.next());
scanner.close();
नोट:स्कैनर वर्ग सिंक्रनाइज़ नहीं है और इसलिए, थ्रेड-सुरक्षित नहीं है।

निष्कर्ष

जैसा कि आपने इस ट्यूटोरियल में देखा, जावा कई विधियाँ प्रदान करता है जिन्हें आप टेक्स्ट फ़ाइलों को पढ़ने के लिए अपने हाथ में कार्य की प्रकृति के अनुसार चुन सकते हैं। आप BufferedReader . का उपयोग कर सकते हैं बड़ी फ़ाइलों को पंक्ति दर पंक्ति पढ़ने के लिए।

यदि आप किसी ऐसी फ़ाइल को पढ़ना चाहते हैं जिसकी सामग्री एक सीमांकक द्वारा अलग की गई है, तो Scanner का उपयोग करें कक्षा।

इसके अलावा आप Java NIO Files . का उपयोग कर सकते हैं छोटी और बड़ी दोनों फाइलों को पढ़ने के लिए कक्षा।


  1. जावा में गुण फ़ाइल से डेटा कैसे पढ़ा जाए?

    गुण हैशटेबल वर्ग का एक उपवर्ग है और यह गुणों के निरंतर सेट का प्रतिनिधित्व करता है। गुण स्ट्रीम में सहेजा जा सकता है या स्ट्रीम से लोड किया जा सकता है। गुण सूची में प्रत्येक कुंजी और उसके संगत मान एक स्ट्रिंग है। गुण फ़ाइल का उपयोग जावा में कॉन्फ़िगरेशन को बाहरी बनाने और कुंजी-मूल्य जोड़े को संग

  1. रूबी में फाइलें कैसे पढ़ें और लिखें (उदाहरण के साथ)

    आज आप रूबी में फाइलों को पढ़ना और लिखना सीखेंगे ताकि आप सामग्री को निकाल सकें, नई फाइलें बना सकें और अपनी जरूरत की जानकारी पा सकें! यहां बताया गया है कि हम क्या कवर करने जा रहे हैं : सामग्री 1 रूबी में फ़ाइलें कैसे पढ़ें 2 रूबी में फ़ाइल को कैसे लिखें 3 रूबी फ़ाइल विधियाँ 4 निर्देशिका संचालन 5

  1. विंडोज 10 में मेमोरी डंप फाइल कैसे पढ़ें

    यदि आपका पीसी हाल ही में क्रैश हुआ है, तो आपको ब्लू स्क्रीन ऑफ डेथ (बीएसओडी) का सामना करना पड़ा होगा, जो क्रैश के कारणों को सूचीबद्ध करता है और फिर पीसी अचानक बंद हो जाता है। अब बीएसओडी स्क्रीन केवल कुछ सेकंड के लिए दिखाई जाती है, और उस समय दुर्घटना के कारण का विश्लेषण करना संभव नहीं है। शुक्र है, ज