खोज…


परिचय

पाठक और लेखक और उनके संबंधित उपवर्ग पाठ / चरित्र-आधारित डेटा के लिए सरल I / O प्रदान करते हैं।

BufferedReader

परिचय

BufferedReader क्लास अन्य Reader क्लासेस के लिए एक रैपर है जो दो मुख्य उद्देश्यों को पूरा करता है:

  1. एक BufferedReader लिपटे Reader लिए बफरिंग प्रदान करता है। यह किसी एप्लिकेशन को किसी भी समय अनुचित I / O ओवरहेड्स के बिना वर्ण पढ़ने की अनुमति देता है।

  2. एक BufferedReader एक समय में एक पंक्ति को पढ़ने के लिए कार्यक्षमता प्रदान करता है।

एक बफ़रडर का उपयोग करने की मूल बातें

एक BufferedReader का उपयोग करने के लिए सामान्य पैटर्न निम्नानुसार है। सबसे पहले, आप Reader प्राप्त करते हैं जिसे आप पात्रों से पढ़ना चाहते हैं। इसके बाद आप Reader लपेटने वाले एक BufferedReader को इंस्टेंट करते हैं। फिर आप चरित्र डेटा पढ़ते हैं। अंत में आप BufferedReader को बंद कर देते हैं जो लिपटे `रीडर को बंद कर देता है। उदाहरण के लिए:

File someFile = new File(...);
int aCount = 0;
try (FileReader fr = new FileReader(someFile);
     BufferedReader br = new BufferedReader(fr)) {
    // Count the number of 'a' characters.
    int ch;
    while ((ch = br.read()) != -1) {
        if (ch == 'a') {
            aCount++;
        }
    }
    System.out.println("There are " + aCount + " 'a' characters in " + someFile);
}

आप इस पैटर्न को किसी भी Reader लागू कर सकते हैं

टिप्पणियाँ:

  1. हमने यह सुनिश्चित करने के लिए जावा 7 (या बाद में) कोशिश-के-संसाधनों का उपयोग किया है कि अंतर्निहित पाठक हमेशा बंद रहता है। यह एक संभावित संसाधन रिसाव से बचा जाता है। जावा के पुराने संस्करणों में, आप स्पष्ट रूप से BufferedReader को finally ब्लॉक में बंद कर देंगे।

  2. कोड के अंदर try ब्लॉक लगभग अगर हम से सीधे पढ़ा कि हम क्या प्रयोग करेंगे के समान है FileReader । वास्तव में, एक BufferedReader Reader तरह ही कार्य करता है जिसे वह लपेटता है वह व्यवहार करेगा। अंतर यह है कि यह संस्करण बहुत अधिक कुशल है।

बफ़रड्रेडर बफर आकार

बफ़रड्रेडर.डरलाइन () विधि

उदाहरण: किसी सूची में फ़ाइल की सभी पंक्तियों को पढ़ना

यह एक फ़ाइल में प्रत्येक लाइन प्राप्त करके, और इसे List<String> में जोड़कर किया जाता है। फिर सूची लौटा दी जाती है:

public List<String> getAllLines(String filename) throws IOException {
    List<String> lines = new ArrayList<String>();
    try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
        String line = null;
        while ((line = reader.readLine) != null) {
            lines.add(line);
        }
    }
    return lines;
}

Java 8 lines() विधि का उपयोग करके ऐसा करने के लिए अधिक संक्षिप्त तरीका प्रदान करता है:

public List<String> getAllLines(String filename) throws IOException {
    try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
        return br.lines().collect(Collectors.toList());
    }
    return Collections.empty();
}

StringWriter उदाहरण

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

StringWriter वर्ग राइटर वर्ग का विस्तार करता है।

StringWriter वर्ग में, नेटवर्क सॉकेट और फ़ाइलों जैसे सिस्टम संसाधनों का उपयोग नहीं किया जाता है, इसलिए StringWriter को बंद करना आवश्यक नहीं है।

import java.io.*;  
public class StringWriterDemo {  
    public static void main(String[] args) throws IOException {  
        char[] ary = new char[1024];  
        StringWriter writer = new StringWriter();  
        FileInputStream input = null;  
        BufferedReader buffer = null;  
        input = new FileInputStream("c://stringwriter.txt");  
        buffer = new BufferedReader(new InputStreamReader(input, "UTF-8"));  
        int x;  
        while ((x = buffer.read(ary)) != -1) {  
                   writer.write(ary, 0, x);  
        }  
        System.out.println(writer.toString());        
        writer.close();  
        buffer.close();  
    }  
}

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



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow