Kotlin में फ़ाइल सिस्टम के साथ कार्य: सिद्धांत से व्यवहार तक
\n\nफ़ाइल सिस्टम के साथ कार्य करना एक बुनियादी कार्य है जिसका सामना हर डेवलपर करता है। Kotlin में, Java के साथ इसके घनिष्ठ एकीकरण और अपने स्वयं के सुविधाजनक एक्सटेंशन के कारण, फ़ाइलों और निर्देशिकाओं का प्रबंधन सहज और संक्षिप्त हो जाता है। इस लेख में, हम प्रमुख संक्रियाओं पर चर्चा करेंगे: फ़ाइलें बनाना, पढ़ना, लिखना और हटाना, साथ ही निर्देशिकाओं के साथ कार्य करना। सभी उदाहरण Kotlin में लिखे गए हैं और आपके प्रोजेक्ट में उपयोग के लिए तैयार हैं।
\n\nमूल बातें: कनेक्शन और पहले कदम
\n\nKotlin के पास फ़ाइल सिस्टम के साथ कार्य करने के लिए अपनी कोई अलग लाइब्रेरी नहीं है - यह पूरी तरह से java.io.File की शक्ति का उपयोग करता है, इसमें कई extension-फ़ंक्शन जोड़ता है। इसका मतलब है कि आप परिचित Java विधियों का उपयोग कर सकते हैं, लेकिन छोटे और अधिक सुरक्षित सिंटैक्स के साथ।
import java.io.File\n\nfun main() {\n val file = File("example.txt")\n println(file.exists()) // false, यदि फ़ाइल मौजूद नहीं है\n}\n\nमुख्य वर्ग java.io.File है। यह फ़ाइल या निर्देशिका के पथ का एक अमूर्तन प्रस्तुत करता है, जरूरी नहीं कि वह डिस्क पर मौजूद हो।
Kotlin में फ़ाइलें पढ़ना और लिखना
\n\nKotlin पढ़ने और लिखने के सुरुचिपूर्ण तरीके प्रदान करता है जो मैन्युअल रूप से स्ट्रीम प्रबंधित करने और संसाधनों को बंद करने की आवश्यकता को समाप्त करते हैं।
\n\nफ़ाइल की संपूर्ण सामग्री पढ़ना
\n\nसबसे सरल तरीका readText() फ़ंक्शन का उपयोग करना है। यह पूरी फ़ाइल को एक स्ट्रिंग में पढ़ता है।
fun readEntireFile() {\n val file = File("data.txt")\n if (file.exists()) {\n val content: String = file.readText()\n println(content)\n } else {\n println("फ़ाइल नहीं मिली")\n }\n}\n\nयदि फ़ाइल बड़ी है, तो पंक्ति दर पंक्ति पढ़ना बेहतर है:
\n\nfun readLines() {\n File("log.txt").useLines { lines ->\n lines.forEach { line ->\n println(line)\n }\n }\n // useLines स्वचालित रूप से स्ट्रीम बंद कर देगा\n}\n\nफ़ाइल में लिखना
\n\nलिखने के लिए writeText() (फ़ाइल को ओवरराइट करता है) या appendText() (अंत में जोड़ता है) का उपयोग करें।
fun writeToFile() {\n val file = File("output.txt")\n file.writeText("नमस्ते, Kotlin!\\n")\n file.appendText("यह दूसरी पंक्ति है।")\n \n println(file.readText())\n // आउटपुट:\n // नमस्ते, Kotlin!\n // यह दूसरी पंक्ति है।\n}\n\nअधिक जटिल डेटा (जैसे, स्ट्रिंग्स की सूची लिखना) के लिए writeLines() का उपयोग करना सुविधाजनक है:
fun writeListOfLines() {\n val lines = listOf("पंक्ति 1", "पंक्ति 2", "पंक्ति 3")\n File("list.txt").writeLines(lines)\n}\n\nफ़ाइलों और निर्देशिकाओं का निर्माण, प्रतिलिपि और विलोपन
\n\nफ़ाइल संरचना का प्रबंधन एक और सामान्य कार्य है। आइए मुख्य संक्रियाओं पर विचार करें।
\n\nफ़ाइलें और फ़ोल्डर बनाना
\n\nविधि createNewFile() एक नई खाली फ़ाइल बनाती है, यदि वह पहले से मौजूद नहीं है। निर्देशिकाएँ बनाने के लिए mkdir() (पथ में केवल अंतिम फ़ोल्डर बनाता है) या mkdirs() (सभी लापता मूल निर्देशिकाएँ बनाता है) का उपयोग करें।
fun createStructure() {\n val dir = File("my_project/src/main")\n if (dir.mkdirs()) {\n println("निर्देशिका बनाई गई: ${dir.absolutePath}")\n }\n \n val newFile = File(dir, "config.ini")\n if (newFile.createNewFile()) {\n println("फ़ाइल बनाई गई: ${newFile.name}")\n }\n}\n\nप्रतिलिपि और स्थानांतरण
\n\nक्या Kotlin में कोई बिल्ट-इन copyTo फ़ंक्शन नहीं है? वास्तव में है! विधि copyTo() फ़ाइलों को आसानी से कॉपी करने की अनुमति देती है, और renameTo() नाम बदलने या स्थानांतरित करने के लिए।
fun copyAndMove() {\n val source = File("source.txt")\n val destination = File("backup/source_copy.txt")\n \n // प्रतिलिपि\n source.copyTo(destination, overwrite = true)\n \n // स्था