Go में फ़ाइल सिस्टम के साथ काम करना: मूल बातों से लेकर उन्नत तकनीकों तक
Go (Golang) एक आधुनिक प्रोग्रामिंग भाषा है जो अपनी सरलता और उच्च प्रदर्शन के लिए प्रसिद्ध है। किसी भी डेवलपर के सामने आने वाले प्रमुख कार्यों में से एक फ़ाइल सिस्टम के साथ काम करना है। इस लेख में, हम विस्तार से जानेंगे कि Go में फ़ाइलें कैसे बनाएं, पढ़ें, लिखें, निर्देशिकाओं का प्रबंधन करें और पथों को कैसे संभालें। आपको कोड के व्यावहारिक उदाहरण मिलेंगे जो आपको फ़ाइलों के साथ जल्दी और कुशलता से काम करने में महारत हासिल करने में मदद करेंगे।
फ़ाइल सिस्टम के साथ काम करने के लिए मुख्य पैकेज
Go में, फ़ाइल सिस्टम के साथ काम करना मानक लाइब्रेरी के तीन मुख्य पैकेजों में केंद्रित है:
os— बुनियादी संचालन: फ़ाइलों और निर्देशिकाओं को खोलना, बनाना, हटाना।ioऔरio/ioutil— डेटा पढ़ना और लिखना (Go के नए संस्करणों मेंioutilके बजायosका उपयोग करने की अनुशंसा की जाती है)।path/filepath— पथों के साथ काम करना: जोड़ना, विभाजित करना, एक्सटेंशन प्राप्त करना।
काम शुरू करने से पहले, सुनिश्चित करें कि आपने आवश्यक पैकेज आयात कर लिए हैं:
package main
import ( "fmt" "os" "io" "path/filepath")Go में फ़ाइलें पढ़ना और लिखना
पूरी फ़ाइल पढ़ना
फ़ाइल पढ़ने का सबसे आसान तरीका os.ReadFile फ़ंक्शन का उपयोग करना है (Go 1.16 से उपलब्ध)। यह बाइट्स का एक स्लाइस और एक त्रुटि लौटाता है।
func readFileExample() { data, err := os.ReadFile("example.txt") if err != nil { fmt.Println("फ़ाइल पढ़ने में त्रुटि:", err) return } fmt.Println(string(data))}फ़ाइल में लिखना
फ़ाइल में डेटा लिखने के लिए os.WriteFile का उपयोग करें। यदि फ़ाइल मौजूद नहीं है, तो वह बनाई जाएगी। यदि मौजूद है, तो उसे अधिलेखित कर दिया जाएगा।
func writeFileExample() { content := []byte("नमस्ते, दुनिया!दूसरी पंक्ति।") err := os.WriteFile("output.txt", content, 0644) if err != nil { fmt.Println("लिखने में त्रुटि:", err) return } fmt.Println("फ़ाइल सफलतापूर्वक लिखी गई")}बड़ी फ़ाइलों को पंक्ति दर पंक्ति पढ़ना
बड़ी फ़ाइलों को संसाधित करने के लिए, पूरी फ़ाइल को मेमोरी में लोड करने से बचने के लिए बफ़र्ड रीडिंग का उपयोग करना बेहतर है।
import "bufio"
func readLineByLine() { file, err := os.Open("large_file.txt") if err != nil { fmt.Println("खोलने में त्रुटि:", err) return } defer file.Close()
scanner := bufio.NewScanner(file) for scanner.Scan() { line := scanner.Text() fmt.Println(line) } if err := scanner.Err(); err != nil { fmt.Println("स्कैन करने में त्रुटि:", err) }}Go में निर्देशिकाओं के साथ काम करना
निर्देशिकाएँ बनाना और हटाना
एक निर्देशिका बनाने के लिए os.Mkdir का उपयोग करें, और नेस्टेड निर्देशिकाओं के लिए os.MkdirAll का उपयोग करें।
func createDirectories() { // एक फ़ोल्डर बनाएँ err := os.Mkdir("mydir", 0755) if err != nil { fmt.Println("फ़ोल्डर बनाने में त्रुटि:", err) }
// नेस्टेड संरचना बनाएँ err = os.MkdirAll("path/to/nested/dir", 0755) if err != nil { fmt.Println("नेस्टेड फ़ोल्डर बनाने में त्रुटि:", err) }}निर्देशिकाओं को हटाना os.Remove (खाली के लिए) और os.RemoveAll (गैर-खाली के लिए) फ़ंक्शन द्वारा किया जाता है।
func removeDirectories() { // खाली फ़ोल्डर हटाएँ err := os.Remove("mydir") if err != nil { fmt.Println("हटाने में त्रुटि:", err) }
// सभी सामग्री सहित फ़ोल्डर हटाएँ err = os.RemoveAll("path/to") if err != nil { fmt.Println("पुनरावर्ती हटाने में त्रुटि:", err) }}निर्देशिका की सामग्री पढ़ना
os.ReadDir फ़ंक्शन निर्देशिका में आइटम की सूची लौटाता है।
ब्लॉग
पुस्तक अनुशंसाएँ
यह भी पढ़ें
JavaScript साक्षात्कार कैसे पास करें: शीर्ष प्रश्न और उत्तर
2025 में Rust फ्रेमवर्क: वेब डेवलपमेंट के लिए क्या चुनें
C++ में परीक्षण: Unit, Integration और E2E परीक्षण उदाहरणों के साथ
जावास्क्रिप्ट हर जगह: सभी प्लेटफार्मों के लिए एक साथ कोड कैसे लिखें
C# में 30 मिनट में REST API कैसे लिखें: शुरुआती लोगों के लिए