1. Pathवर्ग
यदि आप एक प्रोग्राम लिखना चाहते हैं जो डिस्क पर फाइलों के साथ कुछ करता है, तो यह काफी आसान है। जावा में बहुत सी कक्षाएं हैं जो आपको फाइलों और उनकी सामग्री दोनों के साथ काम करने में मदद करती हैं।
जावा के शुरुआती संस्करणों ने फाइलों के साथ काम करने के लिए Fileकक्षाओं का इस्तेमाल किया। FileInputStreamहालाँकि, Fileवर्ग अब बहिष्कृत है और उपयोग के लिए अनुशंसित नहीं है। बेशक, आप अभी भी इसे कोड, विधि पैरामीटर या क्लास कंस्ट्रक्टर में सामना कर सकते हैं।
शुरुआत से ही, हम यह सीखना शुरू कर देंगे कि Pathक्लास का उपयोग करके फाइलों के साथ कैसे काम किया जाए। Pathवह वर्ग है जिसे प्रतिस्थापित किया गया है File। यह सुरक्षित और अधिक कुशल है।
Pathकक्षा
तकनीकी रूप से, Pathयह एक वर्ग नहीं है - यह एक अंतरफलक है। Pathयह प्रत्येक ऑपरेटिंग सिस्टम (और फाइल सिस्टम) के लिए कक्षा के वंशज के लेखन की अनुमति देने के लिए किया जाता है ।
फ़ाइल पथ लिखने के लिए विंडोज़ के पास एक मानक है, और लिनक्स के पास दूसरा है। बेशक, दुनिया में कई अन्य ऑपरेटिंग सिस्टम हैं, और प्रत्येक का अपना मानक है।
यही कारण है कि Pathफाइलों के साथ काम करने वाले तरीकों में हर जगह इंटरफ़ेस का उपयोग किया जाता है, हालांकि वास्तव में काम इसके वंशज वर्गों के माध्यम से होता है: WindowsPath, UnixPath, ...
Pathवस्तु बनाना
एक वस्तु बनाने के लिए Path(जो वास्तव में वंश वर्ग की वस्तु होगी WindowsPath), आपको इस तरह के एक बयान का उपयोग करने की आवश्यकता है:
Path name = Path.of(path);
कहाँ nameएक चर का नाम है Path, और pathफ़ाइल (या निर्देशिका) के नाम सहित फ़ाइल (या निर्देशिका) के लिए पथ है। और कक्षा ofका एक स्थिर तरीका है Path।
यदि प्रोग्राम विंडोज़ पर चल रहा है तो ऑब्जेक्ट of()बनाने के लिए विधि का उपयोग किया जाता है । WindowsPathयदि प्रोग्राम लिनक्स पर चल रहा है, तो UnixPathऑब्जेक्ट बनाए जाते हैं। आप Pathजैसे कोड का उपयोग करके ऑब्जेक्ट नहीं बना सकते हैं ।new Path()
उदाहरण:
| कोड | टिप्पणी |
|---|---|
|
फ़ाइल का पथ |
|
निर्देशिका के लिए पथ |
फ़ाइल (या निर्देशिका) को एक वैध Pathवस्तु के अस्तित्व के लिए मौजूद होने की आवश्यकता नहीं है। हो सकता है कि आप केवल एक फ़ाइल बनाना चाहते हों... एक Pathवस्तु एक सूप्ड-अप की तरह है String: यह डिस्क पर किसी विशिष्ट फ़ाइल से बंधा नहीं है - यह डिस्क पर केवल एक निश्चित पथ को संग्रहीत करता है। इतना ही।
2. Pathप्रकार के तरीके
इंटरफ़ेस Pathमें कुछ दिलचस्प तरीके हैं। सबसे दिलचस्प नीचे दी गई तालिका में प्रस्तुत किए गए हैं।
| तरीका | विवरण |
|---|---|
|
मूल निर्देशिका लौटाता है |
|
निर्देशिका के बिना फ़ाइल नाम लौटाता है |
|
पथ से रूट निर्देशिका लौटाता है |
|
जाँचता है कि क्या वर्तमान पथ निरपेक्ष है |
|
पथ को निरपेक्ष में परिवर्तित करता है |
|
निर्देशिका नाम में वाइल्डकार्ड हटाता है। |
|
निरपेक्ष और सापेक्ष पथों से एक नया निरपेक्ष पथ बनाता है। |
|
दो निरपेक्ष पथों से सापेक्ष पथ प्राप्त करता है। |
|
जाँचता है कि क्या वर्तमान पथ दिए गए पथ से शुरू होता है |
|
जाँचता है कि क्या वर्तमान पथ दिए गए पथ पर समाप्त होता है |
|
/सीमांकक के रूप में उपयोग करके पथ को भागों में विभाजित करता है . भागों की संख्या लौटाता है। |
|
/सीमांकक के रूप में उपयोग करके पथ को भागों में विभाजित करता है . इसके सूचकांक द्वारा एक भाग लौटाता है। |
|
/सीमांकक के रूप में उपयोग करके पथ को भागों में विभाजित करता है . उपपथ लौटाता है जो दिए गए अंतराल से मेल खाता है। |
|
किसी Pathवस्तु को बहिष्कृत Fileवस्तु में परिवर्तित करता है |
|
किसी वस्तु को वस्तु Pathमें परिवर्तित करता हैURI |
नीचे मौजूदा तरीकों का संक्षिप्त विवरण दिया गया है।
3. पथ को भागों में विभाजित करना
विधि getParent()उस पथ को लौटाती है जो वर्तमान पथ के लिए मूल निर्देशिका को इंगित करता है। भले ही यह पथ एक निर्देशिका या फ़ाइल हो:
| कोड | कीमत |
|---|---|
|
|
|
|
|
|
विधि getFileName()एकल फ़ाइल (या निर्देशिका) नाम लौटाती है - जो भी अंतिम सीमांकक के बाद आता है:
| कोड | कीमत |
|---|---|
|
|
|
|
|
|
विधि getRoot()मूल निर्देशिका का पथ लौटाती है:
| कोड | कीमत |
|---|---|
|
|
4. निरपेक्ष और सापेक्ष पथ
पथ दो प्रकार के होते हैं: निरपेक्ष और सापेक्ष। रूट डायरेक्टरी से एक निरपेक्ष पथ शुरू होता है। विंडोज के लिए, यह c:\फोल्डर हो सकता है; लिनक्स के लिए - /निर्देशिका
एक सापेक्ष पथ कुछ निर्देशिका के सापेक्ष अर्थपूर्ण है। यानी, यह सड़क के अंत की तरह है, लेकिन शुरुआत के बिना। आप एक सापेक्ष पथ को पूर्ण पथ में बदल सकते हैं और इसके विपरीत
boolean isAbsolute()तरीका
विधि जाँचती है कि क्या वर्तमान पथ निरपेक्ष है
| कोड | कीमत |
|---|---|
|
|
|
|
Path toAbsolutePath()तरीका
पथ को निरपेक्ष में परिवर्तित करता है। यदि आवश्यक हो, तो इसमें वर्तमान कार्यशील निर्देशिका जोड़ें:
| कोड | कीमत |
|---|---|
|
|
|
|
Path normalize()तरीका
पथ में, निर्देशिका नाम के बजाय, आप ".." लिख सकते हैं, जिसका अर्थ है एक निर्देशिका वापस जाएं । सामान्यीकरण इन चीजों को खत्म कर देता है। उदाहरण:
| कोड | कीमत |
|---|---|
|
|
|
|
Path relativize(Path other)तरीका
विधि relativize()आपको "पथों के बीच अंतर" बनाने देती है: एक पथ दूसरे के सापेक्ष
| कोड | कीमत |
|---|---|
|
|
|
|
|
अवैध तर्क अपवाद: दो रास्तों में एक अलग "रूट" (अलग डिस्क) है |
Path resolve(Path other)तरीका
विधि resolve()इसके विपरीत करती है relativize(): यह एक निरपेक्ष और एक सापेक्ष पथ से एक नया निरपेक्ष पथ बनाती है।
| कोड | कीमत |
|---|---|
|
|
|
|
toFile()तरीका
विधि एक पदावनत वस्तु लौटाती है जो वस्तु के Fileसमान फ़ाइल पथ को संग्रहीत करती है ।Path
toURI()तरीका
विधि पथ को एक मानक URI में परिवर्तित करती है , और एक वस्तु लौटाती है जिसमें फ़ाइल का पथ होता है:
| फ़ाइल का पथ | फ़ाइल के लिए यूआरआई |
|---|---|
|
|
GO TO FULL VERSION