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

जावा प्रोग्राम: डायरेक्टरी में सभी फाइलों की सामग्री को मर्ज करना

उदाहरण

import java.io.*; 

public class Demo { 
    public static void main(String[] args) throws IOException { 
        File my_dir = new File("फाइल जनरेट होने वाले स्थान का पथ"); 
        PrintWriter my_writer = new PrintWriter("वह .txt जहां परिवर्तन संग्रहीत हैं"); 
        String[] file_names = my_dir.list(); 
        
        for (String file_name : file_names) { 
            System.out.println("सामग्री पढ़ी गई: " + file_name); 
            File my_file = new File(my_dir, file_name); 
            BufferedReader my_reader = new BufferedReader(new FileReader(my_file)); 
            my_writer.println("फाइल में है " + file_name); 
            String my_line = my_reader.readLine(); 
            while (my_line != null) { 
                my_writer.println(my_line); 
                my_line = my_reader.readLine(); 
            } 
            my_writer.flush(); 
        } 
        
        System.out.println("सभी फाइलों का डेटा पढ़ लिया गया है और " + my_dir.getName() + " में मर्ज किया गया"); 
    } 
}

आउटपुट

सभी फाइलों की सामग्री एक टेक्स्ट फाइल में मर्ज हो जाएगी।

व्याख्या: Demo क्लास में मुख्य फंक्शन होता है। एक नया फाइल टाइप बनाया जाता है और वह स्थान जहां नई फाइल बनाई जानी है, उसे पैरामीटर के रूप में पास किया जाता है।

एक PrintWriter इंस्टेंस बनाया जाता है और डायरेक्टरी में मौजूद फाइलों के नाम एक स्ट्रिंग ऐरे में संग्रहीत किए जाते हैं। फाइल नामों पर पुनरावृति की जाती है, और BufferedReader इंस्टेंस का उपयोग करके पढ़ा जाता है। जो कुछ भी पढ़ा जाता है उसे नई फाइल में लिखा जाता है और संग्रहीत किया जाता है। राइटर को फ्लश भी किया जाता है ताकि कोई अवशेष न छूटे।

सुधारित संस्करण (Java 7+ try-with-resources के साथ):

public static void mergeFiles(String sourceDir, String outputFile) throws IOException {
    File dir = new File(sourceDir);
    File[] files = dir.listFiles((d, name) -> name.endsWith(".txt"));
    
    try (PrintWriter writer = new PrintWriter(new FileWriter(outputFile))) {
        if (files != null) {
            for (File file : files) {
                System.out.println("पढ़ रहे हैं: " + file.getName());
                writer.println("=== " + file.getName() + " ===");
                
                try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
                    String line;
                    while ((line = reader.readLine()) != null) {
                        writer.println(line);
                    }
                }
            }
        }
    }
    System.out.println("मर्ज पूरा: " + outputFile);
}

मुख्य सुधार:

  • try-with-resources स्वचालित संसाधन प्रबंधन
  • फाइल फिल्टरिंग (.txt फाइलें)
  • बेहतर त्रुटि प्रबंधन
  • फाइल सीमांकन के लिए स्पष्ट मार्कर
  1. जावा में डायरेक्टरी में JPG फाइलों की सूची कैसे प्राप्त करें जावा में डायरेक्टरी में JPG फाइलों की सूची कैसे प्राप्त करें

    File क्लास का String[] list(FilenameFilter filter) मेथड वर्तमान (File) ऑब्जेक्ट द्वारा दर्शाए गए पथ में सभी फाइलों और डायरेक्टरीज के नामों वाला एक String सरणी वापस करता है। लेकिन रिटर्न की गई सरणी में फाइल नाम होते हैं जो निर्दिष्ट फिल्टर के आधार पर फिल्टर किए जाते हैं। FilenameFilter जावा में एक इं

  1. Java प्रोग्राम: डायरेक्टरी में सभी फ़ाइलों को रिकर्सिवली डिलीट करें (केवल फ़ाइलें) Java प्रोग्राम: डायरेक्टरी में सभी फ़ाइलों को रिकर्सिवली डिलीट करें (केवल फ़ाइलें)

    मान लें हमारे पास D डायरेक्टरी में ExampleDirectory नाम का एक फोल्डर है जिसमें 7 फाइलें और 2 डायरेक्टरीज़ हैं: जहां, SampleDirectory1 में दो फाइलें हैं: SampleFile1.txt और SampleFile2.txt। SampleDirectory2 में दो फाइलें हैं: SampleFile2.txt और SampleFile3.txt। उदाहरण निम्नलिखित Java उदाहरण Exa

  1. Java प्रोग्राम: डायरेक्टरी में सभी फ़ाइलों को रिकर्सिवली लिस्ट करें Java प्रोग्राम: डायरेक्टरी में सभी फ़ाइलों को रिकर्सिवली लिस्ट करें

    मान लें D डायरेक्टरी में ExampleDirectory नाम का एक फोल्डर है जिसमें 7 फाइलें और 2 डायरेक्टरीज़ हैं: जहां, SampleDirectory1 में दो फाइलें हैं: SampleFile1.txt और SampleFile2.txt। SampleDirectory2 में दो फाइलें हैं: SampleFile2.txt और SampleFile3.txt। उदाहरण निम्नलिखित Java उदाहरण ExampleDirect