Kotlin में फ़ाइलों और फ़ाइल सिस्टम के साथ काम करना: शुरुआत से विशेषज्ञ तक

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin में फ़ाइलों के साथ काम करना दर्दनाक क्यों नहीं है

\n\n

कल्पना करें: आप एक ऐसा एप्लिकेशन लिख रहे हैं जिसे उपयोगकर्ता की सेटिंग्स को सहेजना, त्रुटियों को लॉग करना या हज़ारों पंक्तियों वाली CSV फ़ाइलों को प्रोसेस करना होगा। Java में इसके लिए दर्जनों क्लासेस BufferedReader, FileWriter और अंतहीन try-catch की ज़रूरत होती है। और Kotlin में क्या? JetBrains द्वारा बनाई गई यह भाषा सिर्फ Java को "सरल" नहीं बनाती - यह डेटा के साथ काम करने के तरीके को फिर से परिभाषित करती है। यहाँ फ़ाइलें एक पंक्ति में खुलती हैं, और त्रुटियों को सुंदर ढंग से संभाला जाता है।

\n\n

इस लेख में हम Kotlin में फ़ाइलों और फ़ाइल सिस्टम के साथ काम करने को बुनियादी संचालन से लेकर उन्नत तकनीकों तक समझेंगे। आप सीखेंगे कि फ़ाइलों को कैसे पढ़ना और लिखना है, निर्देशिकाओं का प्रबंधन कैसे करना है, JSON और CSV के साथ कैसे काम करना है, और सामान्य गलतियों से कैसे बचना है। तैयार हैं? चलिए शुरू करते हैं!

\n\n

मूल बातें: Kotlin Java IO को कैसे सरल बनाता है

\n\n

Kotlin की मुख्य विशेषता extension-फ़ंक्शन हैं। फ़ाइल पढ़ने के लिए दर्जनों पंक्तियाँ लिखने के बजाय, आप एक फ़ंक्शन .readText() या .readLines() का उपयोग करते हैं। आइए विशिष्ट उदाहरणों पर नज़र डालें।

\n\n

पूरी फ़ाइल पढ़ना

\n

टेक्स्ट फ़ाइल पढ़ने का सबसे आसान तरीका readText() का उपयोग करना है। यह विधि फ़ाइल की सामग्री के साथ एक स्ट्रिंग लौटाती है। महत्वपूर्ण: पढ़ने के बाद फ़ाइल स्वचालित रूप से बंद हो जाएगी।

\n\n
import java.io.File\n\nfun main() {\n    val content = File("example.txt").readText()\n    println(content)\n}
\n\n

यदि फ़ाइल बड़ी है, तो पंक्ति दर पंक्ति पढ़ना बेहतर है:

\n\n
val lines = File("example.txt").readLines()\nlines.forEach { line -> println(line) }
\n\n

और यदि आपको स्ट्रीम के रूप में पढ़ने की आवश्यकता है (उदाहरण के लिए, बड़े लॉग को प्रोसेस करने के लिए):

\n\n
File("example.txt").useLines { lines ->\n    lines.forEach { line ->\n        // प्रत्येक पंक्ति की प्रोसेसिंग\n        println(line)\n    }\n}
\n\n

useLines() पर ध्यान दें - यह एक फ़ंक्शन है जो ब्लॉक के पूरा होने के बाद संसाधन को बंद करने की गारंटी देता है। यह जादुई लगता है, लेकिन Java में try-with-resources की तरह काम करता है, बस छोटा है।

\n\n

फ़ाइल में लिखना

\n

Kotlin में डेटा लिखना भी सहज है। यहाँ तीन विकल्प हैं:

\n\n
// 1. फ़ाइल को ओवरराइट करें\nFile("output.txt").writeText("नमस्ते, दुनिया!")\n\n// 2. फ़ाइल के अंत में जोड़ें\nFile("output.txt").appendText("नई पंक्ति\\n")\n\n// 3. स्ट्रिंग्स की सूची लिखें\nval list = listOf("पंक्ति1", "पंक्ति2", "पंक्ति3")\nFile("output.txt").writeText(list.joinToString("\\n"))
\n\n

वैसे, यदि आप बाइनरी डेटा (इमेज, आर्काइव) के साथ काम कर रहे हैं, तो writeBytes() और readBytes() का उपयोग करें:

\n\n
val imageBytes = File("image.png").readBytes()\n// बाइट्स की प्रोसेसिंग...\nFile("copy.png").writeBytes(imageBytes)
\n\n

फ़ाइल सिस्टम प्रबंधन: बनाना, हटाना, स्थानांतरित करना

\n\n

Kotlin पहिया का पुन: आविष्कार नहीं करता, लेकिन फ़ाइल सिस्टम के साथ काम करना अधिक सुविधाजनक बनाता है। सभी ऑपरेशन एक्सटेंशन के साथ java.io.File क्लास के माध्यम से उपलब्ध हैं।

\n\n

निर्देशिकाएँ बनाना

\n

एक निर्देशिका (और सभी मूल निर्देशिकाएँ, यदि वे मौजूद नहीं हैं) बनाने के लिए:

\n\n
val dir = File("data/logs/2024")\nval created = dir.mkdirs() // यदि बनाई गई तो true लौटाता है\nprintln("निर्देशिका बनाई गई: $created")
\n\n

ध्यान दें: mkdir() केवल अंतिम फ़ोल्डर बनाता है, जबकि mkdirs() पूरी श्रृंखला बनाता है।

\n\n

अस्तित्व की जाँच और हटाना

\n\n
val file = File("temp.txt")\nif (file.exists()) {\n    if (file.delete()) {\n        println("फ़ाइल हटा दी गई")\n    } else {\n        println("हटाने में विफल")\n    }\n}\n\n// निर्देशिका को पुनरावर्ती रूप से हटाना\nFile("data").deleteRecursively()
\n\n

deleteRecursively() से सावधान रहें - यह एक अपरिवर्तनीय ऑपरेशन है। दो बार जाँचें कि आप सही डेटा हटा रहे हैं।

\n\n

स्थानांतरण और प्रतिलिपि बनाना

\n\n
val source = File("old.txt")\nval target = File("new_dir/new.txt")\n\n// स्थानांतरण (पुनः                

ब्लॉग

पुस्तक अनुशंसाएँ