कुछ परिदृश्यों के लिए आपको जावा में एक फ़ाइल की प्रतिलिपि बनाने की आवश्यकता होती है। आप फ़ाइल प्रबंधक के लिए प्रक्रियाओं को स्वचालित करने के लिए एक सरल स्क्रिप्ट बना रहे होंगे। आप एक पूर्ण विकसित एप्लिकेशन भी लिख सकते हैं जो फाइलों के साथ काम करता है।

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

FileInputStream और FileOutputStream का उपयोग करके फ़ाइलों की प्रतिलिपि कैसे करें

यह विधि फ़ाइल से डेटा के प्रत्येक बाइट को मैन्युअल रूप से पढ़कर और इसे एक नए गंतव्य पर लिखकर काम करती है। नीचे Files.copy विधि के विपरीत, आप इस विधि का उपयोग Java 6 और पूर्व सहित सभी Java संस्करणों के लिए कर सकते हैं।

यह स्रोत फ़ाइल से बाइट्स पढ़ने के लिए FileInputStream क्लास का उपयोग करता है, और FileOutputStream गंतव्य पर बाइट लिखने के लिए उपयोग करता है।

  1. अपने कंप्यूटर पर कहीं भी "SimpleScript.java" नामक फ़ाइल बनाएँ।
  2. फ़ाइल को टेक्स्ट एडिटर या आईडीई में खोलें, और निम्नलिखित बेस कोड को एप्लिकेशन में कॉपी करें।
    आयात java.io. आईओएक्सप्शन;

    कक्षासरल स्क्रिप्ट{
    जनतास्थिरशून्यमुख्य(स्ट्रिंग आर्ग [])फेंकता IOException {
    // आपका कोड यहाँ
    }
    }

  3. फ़ाइल के शीर्ष पर पहले आयात विवरण के ठीक बाद इन अतिरिक्त इनपुट स्ट्रीम और आउटपुट स्ट्रीम कक्षाओं को आयात करें।
    आयात java.io. फ़ाइल;
    आयात java.io. आगत प्रवाह;
    आयात java.io. आउटपुटस्ट्रीम;
    आयात java.io. फ़ाइल इनपुटस्ट्रीम;
    आयात java.io. फ़ाइलऑटपुटस्ट्रीम;
  4. अपनी SimpleScript.java फ़ाइल के समान फ़ोल्डर में "Copy-File-1.txt" नामक एक नई फ़ाइल बनाएँ। फ़ाइल के अंदर कोई भी लिखित सामग्री जोड़ें।
  5. उसी फ़ोल्डर में, "गंतव्य" नामक एक नई निर्देशिका भी बनाएं। लक्ष्य "कॉपी-फाइल-1.txt" फ़ाइल को नए फ़ोल्डर में कॉपी करना है।
  6. कक्षा के मुख्य कार्य के अंदर, दो नई फ़ाइल ऑब्जेक्ट बनाने के लिए फ़ाइल वर्ग का उपयोग करें। स्रोत, वह फ़ाइल होगी जिसे आप कॉपी करना चाहते हैं, और गंतव्य, जहाँ आप फ़ाइल को कॉपी करना चाहते हैं। यदि गंतव्य फ़ाइल मौजूद नहीं है, तो आपका प्रोग्राम एक नई फ़ाइल बनाएगा।
    कक्षासरल स्क्रिप्ट{ 
    जनतास्थिरशून्यमुख्य(स्ट्रिंग आर्ग [])फेंकता IOException {
    // किसी फ़ाइल को कॉपी करने का पहला तरीका
    फ़ाइल स्रोत = नया फ़ाइल ("कॉपी-फ़ाइल-1।टेक्स्ट");
    फ़ाइल गंतव्य = नया फ़ाइल ("गंतव्य/कॉपी-फ़ाइल-1।टेक्स्ट");
    }
    }
  7. उसके बाद, एक इनपुटस्ट्रीम और आउटपुटस्ट्रीम ऑब्जेक्ट बनाएं।
    इनपुटस्ट्रीम इनपुट = शून्य;
    आउटपुटस्ट्रीम आउटपुट = शून्य;
  8. डेटा को बाइट्स में पढ़ने के लिए इनपुट स्ट्रीम का उपयोग करें, और डेटा को नए स्थान पर लिखने के लिए आउटपुट स्ट्रीम का उपयोग करें।
    प्रयत्न {
    // FileInputStream और FileOutputStream ऑब्जेक्ट बनाएं
    इनपुट = नया फ़ाइल इनपुटस्ट्रीम (स्रोत);
    आउटपुट = नया FileOutputStream (गंतव्य);
    बाइट[] बफ = नयाबाइट[1024];
    पूर्णांक बाइट्सपढ़ें;

    // गंतव्य के लिए बाइट्स लिखें
    जबकि ((बाइट्सरीड = input.read (buf))> 0) {
    आउटपुट.राइट (बफ, 0, बाइट्सरीड);
    }
    } पकड़ (आईओएक्सप्शन ई) {
    ई.प्रिंटस्टैकट्रेस ();
    System.out.println ("फ़ाइल को गंतव्य पर कॉपी नहीं किया जा सका:" + गंतव्य। getPath () + "। जांच यदि फ़ोल्डर या फ़ाइल पहले से मौजूद है।");
    } आखिरकार {
    // धाराओं को बंद करें
    यदि (इनपुट!= शून्य) {
    इनपुट.क्लोज़ ();
    }

    यदि (आउटपुट!= शून्य) {
    आउटपुट.क्लोज़ ();
    }
    }

    System.out.println ("फ़ाइल कॉपी की गई");

  9. स्क्रिप्ट चलाने के लिए, एक कमांड लाइन खोलें। उस फ़ोल्डर पर नेविगेट करें जहां आपने सीडी कमांड का उपयोग करके अपनी जावा फ़ाइल को संग्रहीत किया था विंडोज कमांड प्रॉम्प्ट या मैक टर्मिनल.
    सीडी डेस्कटॉप
  10. स्क्रिप्ट को संकलित करने के लिए, जावा फ़ाइल को सहेजें और चलाएँ जावैक कमांड लाइन में कमांड:
    javac SimpleScript.java
  11. स्क्रिप्ट चलाने के लिए, का उपयोग करें जावा आज्ञा:
    जावा सिंपलस्क्रिप्ट
    आपको बिना किसी त्रुटि के आउटपुट की एक पंक्ति देखनी चाहिए:
  12. अपनी कॉपी की गई फ़ाइल देखने के लिए अपने "गंतव्य" फ़ोल्डर में नेविगेट करें।
  13. उस सामग्री को देखने के लिए फ़ाइल खोलें, जिसे आपके प्रोग्राम ने मूल फ़ाइल से कॉपी किया था।

Files.copy का उपयोग करके फ़ाइलें कैसे कॉपी करें

यदि आप Java 7 या बाद के संस्करण का उपयोग कर रहे हैं, तो आप Files.copy विधि का उपयोग कर सकते हैं। यह विधि आम तौर पर एक सरल कार्यान्वयन है। के मुताबिक जावा दस्तावेज़ीकरण, फ़ंक्शन के लिए एकाधिक अधिभार हैं।

उदाहरण के लिए, Files.copy विधि फ़ाइलों को एक स्थान से दूसरे स्थान पर कॉपी करने के लिए एक इनपुट स्ट्रीम का भी उपयोग कर सकती है, लेकिन कम कोड का उपयोग करके एक विधि के माध्यम से। आप पथ का उपयोग भी कर सकते हैं, या स्वयं निर्दिष्ट कर सकते हैं कि आप अपनी फ़ाइल की प्रतिलिपि बनाने की विधि कैसे चाहते हैं।

  1. अपनी SimpleScript.java फ़ाइल के समान फ़ोल्डर में "Copy-File-2.txt" नामक एक नई फ़ाइल बनाएँ। फ़ाइल के अंदर कोई भी लिखित सामग्री जोड़ें।
  2. फ़ाइल के शीर्ष पर, "java.nio.file. पथ" और "java.nio.file. फ़ाइलें" कक्षाएं।
    आयात java.nio.file. पथ;
    आयात java.nio.file. फ़ाइलें;
  3. स्रोत फ़ाइल और गंतव्य के लिए सापेक्ष फ़ाइल पथ का प्रतिनिधित्व करते हुए दो तार जोड़ें। Files.copy विधि का उपयोग करें, जो फ़ाइल को गंतव्य पर कॉपी करने के लिए पहले से ही तर्क को संभाल लेगी।
    स्ट्रिंग कॉपीसोर्स = "कॉपी-फाइल-2।टेक्स्ट";
    स्ट्रिंग कॉपीडेस्टिनेशन = "गंतव्य/कॉपी-फाइल-2।टेक्स्ट";

    प्रयत्न {
    Files.copy (Paths.get (copySource), Paths.get (copyDestination));
    } पकड़ (अपवाद ई) {
    System.out.println ("फ़ाइल को गंतव्य पर कॉपी नहीं किया जा सका:" + copyDestination + "। जांच यदि फ़ोल्डर या फ़ाइल पहले से मौजूद है।");
    }
    System.out.println ("2nd फ़ाइल कॉपी की गई");

  4. Javac और Java कमांड का उपयोग करके स्क्रिप्ट चलाएँ।
  5. अपनी कॉपी की गई फ़ाइल देखने के लिए अपने "गंतव्य" फ़ोल्डर में नेविगेट करें।

FileChannel.transferTo () का उपयोग करके फ़ाइलों की प्रतिलिपि कैसे करें

के मुताबिक जावा दस्तावेज़ीकरण, यह विधि फ़ाइलों की प्रतिलिपि बनाने का एक संभावित तेज़ तरीका हो सकता है। हालाँकि, यह इस बात पर निर्भर करेगा कि आप फ़ंक्शन को कैसे लागू करते हैं।

  1. अपनी SimpleScript.java फ़ाइल के समान फ़ोल्डर में "Copy-File-3.txt" नामक एक नई फ़ाइल बनाएँ। इस फ़ाइल में कुछ नमूना सामग्री जोड़ें।
  2. SimpleScript.java के शीर्ष पर, "java.nio.channels. FileChannel" वर्ग io पैकेज से पिछले तीन सामान्य फ़ाइल-संबंधित वर्गों के साथ।
    आयात java.io. फ़ाइल;
    आयात java.io. फ़ाइल इनपुटस्ट्रीम;
    आयात java.io. फ़ाइलऑटपुटस्ट्रीम;
    आयात java.nio.चैनल। फ़ाइल चैनल;
  3. स्रोत और गंतव्य के लिए फ़ाइल ऑब्जेक्ट बनाएं, और उनका उपयोग इनपुट स्ट्रीम और आउटपुट स्ट्रीम बनाने के लिए करें।
    फ़ाइल स्रोत = नया फ़ाइल ("कॉपी-फ़ाइल-3।टेक्स्ट");
    फ़ाइल डीएसटी = नया फ़ाइल ("गंतव्य/कॉपी-फ़ाइल-3।टेक्स्ट");
    फाइलइनपुटस्ट्रीम इनस्ट्रीम = नया फ़ाइल इनपुटस्ट्रीम (src);
    फ़ाइलऑटपुटस्ट्रीम आउटस्ट्रीम = नया फ़ाइलऑटपुटस्ट्रीम (डीएसटी);
  4. फ़ाइल को उसके गंतव्य पर कॉपी करने के लिए FileChannel वर्ग से TransferTo विधि का उपयोग करें।
    प्रयत्न {
    FileChannel inChannel = inStream.getChannel ();
    फाइलचैनल आउटचैनल = आउटस्ट्रीम.गेटचैनल ();
    inChannel.transferTo(0, inChannel.size (), आउटचैनल);
    } पकड़ (अपवाद ई) {
    System.out.println ("फ़ाइल को गंतव्य पर कॉपी नहीं किया जा सका:" + dst.getPath () + "। जांच यदि फ़ोल्डर या फ़ाइल पहले से मौजूद है।");
    } आखिरकार {
    // धाराओं को बंद करें
    इनस्ट्रीम.क्लोज़ ();
    आउटस्ट्रीम.क्लोज़ ();
    }
    System.out.println ("3rd फ़ाइल कॉपी की गई");
  5. Javac और Java कमांड का उपयोग करके स्क्रिप्ट चलाएँ।
  6. अपनी कॉपी की गई फ़ाइल देखने के लिए अपने "गंतव्य" फ़ोल्डर में नेविगेट करें।

जावा में फ़ाइलों की प्रतिलिपि बनाना बस शुरुआत है

जावा में फ़ाइल को कॉपी करने के कई तरीके हैं। तीन संभावित तरीकों में पारंपरिक स्ट्रीम विधि, Files.copy विधि, या transferTo विधि का उपयोग करना शामिल है।

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