मेन्यू

जावा फ़ाइल कॉपी (बफ़र आकार बदलें)

विषयसूची

जावा फ़ाइल कॉपी (बफ़र आकार बदलें)

जावा में java.io.इनपुटस्ट्रीम,java.io.आउटपुटस्ट्रीम पर
एक नमूना प्रोग्राम प्रस्तुत करना जो इनपुट/आउटपुट स्ट्रीम का उपयोग करके कॉपी प्रोसेसिंग करता है।
स्ट्रीम का उपयोग करके कॉपी प्रोसेसिंग में, रीड बफर आकार को बढ़ाकर बड़ी फ़ाइलों को भी अपेक्षाकृत तेज़ी से कॉपी किया जा सकता है।
नमूना कार्यक्रम में, डेटा रीड बफर आकार को एक तर्क के साथ निर्दिष्ट किया जा सकता है।

निर्दिष्ट रीड बफ़र क्षेत्र JavaVM हीप के भीतर सुरक्षित है, इसलिए इसे बहुत बड़ा बनाने से खराब दक्षता होगी। इसलिए, हम फ़ाइलों की प्रतिलिपि बनाते समय कुशल डेटा रीड बफ़र आकार की भी जाँच करते हैं।

नमूना कार्यक्रम


कार्यान्वयन

नमूना प्रोग्राम फ़ाइल की प्रतिलिपि बनाने के लिए, हमने सीधे C ड्राइव के अंतर्गत एक 100MB फ़ाइल "100M.txt" तैयार की है। नमूना कार्यक्रम में, C:\100M.txt , बफ़र आकार 1000KB की इकाइयों में डेटा पढ़ें। सी:\a.txt में कॉपी।

नमूना निम्नलिखित वातावरण में निष्पादित किया गया था।
ओएस: विंडोज़एक्सपी
सीपीयू: एथलॉन 1.46GHz
मेमोरी: 1 जीबी
जेआरई: 1.6.4

◆निष्पादन उदाहरण

/** * निष्पादन उदाहरण * @param args */ सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) { प्रयास करें {copyStream ("C:\\100M.txt", "C:\\a.txt",1000); } पकड़ें (IOException e) { e.printStackTrace(); } }

◆निष्पादन परिणाम


बफ़र आकार बदलना

फ़ाइलों की प्रतिलिपि बनाते समय कुशल डेटा रीड बफ़र आकार की जाँच करने के लिए, कॉपीस्ट्रीम के तीसरे तर्क का उपयोग करें
1KB, 100KB, 1000KB और 10000KB इकाइयों में समान प्रतिलिपि प्रसंस्करण के परिणाम नीचे संक्षेप में दिए गए हैं।



हालाँकि यह केवल उपरोक्त परिणामों से निष्कर्ष नहीं निकाला जा सकता है, यदि आप 1000KB की इकाइयों में डेटा रीड बफर आकार निर्दिष्ट करते हैं,
परिणामों से पता चला कि यह कॉपी प्रोसेसिंग के दौरान ढेर के उपयोग और प्रसंस्करण समय के मामले में कुशल था।
फ़ाइल का आकार (लगभग 1GB) बढ़ाने पर भी समान परिणाम प्राप्त हुए।

दूसरी ओर, एक छोटी फ़ाइल (लगभग 1 एमबी या उससे कम) की प्रतिलिपि बनाते समय, बफर आकार बढ़ाना बेकार होगा, इसलिए मुझे लगता है कि लगभग 100 केबी निर्दिष्ट करना बेहतर है।

तेज़ गति के लिए FileChannel का उपयोग करें


 java.io.इनपुटस्ट्रीम,java.io.आउटपुटस्ट्रीम
इनपुट/आउटपुट स्ट्रीम को समझने के लिए कॉपी प्रोसेसिंग महत्वपूर्ण है, लेकिन
J2SE1.4 में नया I/O पेश किया गया java.nio.channels.FileChannel#transferTo
इस पद्धति का उपयोग करके, आप फ़ाइलों को और भी अधिक कुशलता से कॉपी कर सकते हैं।
आगे, मैं आपको दिखाऊंगा कि FileChannel का उपयोग करके फ़ाइलों को आसानी से और तेज़ी से कैसे कॉपी किया जाए।
जावा फ़ाइल कॉपी (आसान और तेज़)

  • URLをコピーしました!
विषयसूची