1. Files
वर्ग
फाइलों के साथ काम करने के लिए, एक चालाक उपयोगिता वर्ग है — java.nio.file.Files
. इसमें हर मौके के लिए तरीके हैं। इस वर्ग के सभी तरीके स्थिर हैं और पाथ ऑब्जेक्ट पर काम करते हैं। बहुत सारे तरीके हैं, इसलिए हम केवल सबसे महत्वपूर्ण पर विचार करेंगे:
तरीका | विवरण |
---|---|
|
एक नई फाइल बनाता है जिसका पथ हैpath |
|
एक नई निर्देशिका बनाता है |
|
कई निर्देशिका बनाता है |
|
एक अस्थायी फ़ाइल बनाता है |
|
एक अस्थायी निर्देशिका बनाता है |
|
फ़ाइल या निर्देशिका खाली होने पर उसे हटा देता है |
|
एक फ़ाइल की प्रतिलिपि बनाता है |
|
एक फ़ाइल ले जाएँ |
|
जांचता है कि पथ एक निर्देशिका है और फ़ाइल नहीं है |
|
जाँचता है कि क्या पथ एक फ़ाइल है और निर्देशिका नहीं है |
|
जाँचता है कि दिए गए पथ पर कोई वस्तु मौजूद है या नहीं |
|
फ़ाइल का आकार लौटाता है |
|
फ़ाइल की संपूर्ण सामग्री को बाइट्स की एक सरणी के रूप में लौटाता है |
|
फ़ाइल की संपूर्ण सामग्री को एक स्ट्रिंग के रूप में लौटाता है |
|
फ़ाइल की संपूर्ण सामग्री को स्ट्रिंग्स की सूची के रूप में लौटाता है |
|
फ़ाइल में बाइट्स की एक सरणी लिखता है |
|
फ़ाइल में एक स्ट्रिंग लिखता है |
|
दी गई निर्देशिका से फ़ाइलों (और उपनिर्देशिकाओं) का संग्रह लौटाता है |
2. फ़ाइलें और निर्देशिकाएँ बनाना
फ़ाइलें और निर्देशिकाएँ बनाना बहुत आसान है। आइए कुछ उदाहरणों से खुद को समझाते हैं:
कोड | टिप्पणी |
---|---|
|
फाइल बनाता है |
|
डायरेक्टरी बनाता है |
|
यदि वे मौजूद नहीं हैं तो एक निर्देशिका और सभी आवश्यक उपनिर्देशिकाएँ बनाता है। |
3. प्रतिलिपि बनाना, स्थानांतरित करना और हटाना
फ़ाइलों को कॉपी करना, ले जाना और हटाना उतना ही आसान है। यह निर्देशिकाओं पर भी लागू होता है, लेकिन वे खाली होनी चाहिए।
कोड | टिप्पणी |
---|---|
|
एक फ़ाइल की प्रतिलिपि बनाता है |
|
किसी फ़ाइल को ले जाता है और उसका नाम बदल देता है |
|
एक फ़ाइल हटा देता है |
4. फ़ाइल के प्रकार और अस्तित्व की जाँच करना
जब आपके पास किसी और द्वारा प्रदान किया गया पथ है, तो आप जानना चाहते हैं कि यह फ़ाइल है या निर्देशिका है। और सामान्य तौर पर, ऐसी फ़ाइल/निर्देशिका मौजूद है या नहीं?
इसके लिए खास तरीके भी हैं। आप किसी फ़ाइल की लंबाई का भी आसानी से पता लगा सकते हैं:
कोड | टिप्पणी |
---|---|
|
|
|
|
|
|
|
|
5. फ़ाइल सामग्री के साथ कार्य करना
अंत में, विधियों की एक पूरी श्रृंखला है जो किसी फ़ाइल की सामग्री को पढ़ना या लिखना आसान बनाती है। उदाहरण:
कोड | विवरण |
---|---|
|
फ़ाइल की सामग्री को स्ट्रिंग्स की सूची के रूप में पढ़ें। तार प्रदर्शित करें |
6. एक निर्देशिका की सामग्री प्राप्त करना
सबसे दिलचस्प तरीका अभी बाकी है। इसका उपयोग किसी दिए गए निर्देशिका में फ़ाइलें और उपनिर्देशिका प्राप्त करने के लिए किया जाता है।
हम उस newDirectoryStream()
विधि के बारे में बात कर रहे हैं जो एक विशेष DirectoryStream<Path>
वस्तु को वापस करती है। इसमें एक पुनरावर्तक (!) है जिसका उपयोग आप किसी दिए गए निर्देशिका की सभी फाइलों और उपनिर्देशिकाओं को प्राप्त करने के लिए कर सकते हैं।
यह सुनने में जितना आसान लगता है, उससे कहीं ज्यादा आसान है।
कोड | विवरण |
---|---|
|
फ़ाइलों की सूची के साथ ऑब्जेक्ट प्राप्त करें फ़ाइलों की सूची पर लूप करें |
वस्तु DirectoryStream<Path>
के दो गुण होते हैं। सबसे पहले, इसमें एक पुनरावर्तक है जो फ़ाइल पथ लौटाता है, और हम इस ऑब्जेक्ट को for-each
लूप के अंदर उपयोग कर सकते हैं।
और दूसरा, यह ऑब्जेक्ट एक डेटा स्ट्रीम है, इसलिए इसे close()
विधि का उपयोग करके स्पष्ट रूप से बंद किया जाना चाहिए, या try-with-resources
ब्लॉक के अंदर घोषित उपयोग किया जाना चाहिए।
7. Files.newInputStream
विधि
जावा 5 से शुरू होकर, FileInputStream
और FileOutputStream
कक्षाओं को पदावनत कर दिया गया है। उनका एक नुकसान यह था कि जब इन वर्गों के ऑब्जेक्ट बनाए जाते हैं, तो डिस्क पर तुरंत फाइलें बनाई जाती हैं। और फ़ाइल निर्माण से संबंधित सभी अपवाद संभावित रूप से फेंके जा सकते हैं।
बाद में इसे सर्वश्रेष्ठ निर्णय नहीं माना गया। java.nio.Files
तदनुसार, फ़ाइल ऑब्जेक्ट बनाने के लिए उपयोगिता वर्ग के तरीकों का उपयोग करने की अनुशंसा की जाती है ।
फ़ाइलें बनाने के लिए पुराने दृष्टिकोण और नए दृष्टिकोण के बीच तुलना यहां दी गई है:
पहले |
---|
|
बाद |
|
और इसके लिए एक समान प्रतिस्थापन है FileOutputStream
:
पहले |
---|
|
बाद |
|
GO TO FULL VERSION