फ़ाइल सिस्टम पर विजय: जावास्क्रिप्ट में फ़ाइलों के साथ काम करना

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

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

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

परिचय: जावास्क्रिप्ट में फ़ाइलों के साथ काम करना क्यों ज़रूरी है

\n\n

कल्पना करें कि आप एक अंतरिक्ष यान के कप्तान हैं। आपका काम कार्गो बे, ऑक्सीजन आपूर्ति और लॉगबुक को प्रबंधित करना है। वेब डेवलपमेंट की दुनिया में, फ़ाइल सिस्टम वही कार्गो बे है, और जावास्क्रिप्ट आपका कंट्रोल पैनल है। फ़ाइलों के साथ काम करने की क्षमता के बिना, आप कक्षा में फंस जाएंगे: आप उपयोगकर्ता सेटिंग्स को सहेज नहीं पाएंगे, सर्वर कॉन्फ़िगरेशन लोड नहीं कर पाएंगे, या लॉग फ़ाइलों को प्रोसेस नहीं कर पाएंगे।

\n\n

कई शुरुआती लोग सोचते हैं कि जावास्क्रिप्ट केवल ब्राउज़र में रहता है और डिस्क पर फ़ाइलों को छू नहीं सकता। यह एक मिथक है! Node.js (और आधुनिक ब्राउज़रों में File API के माध्यम से) के आगमन के साथ, जावास्क्रिप्ट फ़ाइल सिस्टम के साथ काम करने के लिए एक पूर्ण उपकरण बन गया है। आज हम सीखेंगे कि फ़ाइलों को कैसे पढ़ें, लिखें, हटाएं और स्थानांतरित करें, साथ ही एसिंक्रोनसिटी के जाल में कैसे न फंसें।

\n\n

वैसे, यदि आप प्रोग्रामिंग में अपनी यात्रा शुरू कर रहे हैं, तो मैं पहले जावास्क्रिप्ट की मूल बातें सीखने की सलाह देता हूं - इससे नीचे दिए गए उदाहरणों को समझने में मदद मिलेगी।

\n\n

जावास्क्रिप्ट फ़ाइलों के साथ कहाँ काम करता है? दो दुनिया - दो दृष्टिकोण

\n\n

कोड में गोता लगाने से पहले, आइए स्पष्ट करें: JS में फ़ाइल संचालन दो शिविरों में विभाजित है।

\n\n

1. सर्वर-साइड जावास्क्रिप्ट (Node.js)

\n

यहां हमारे पास फ़ाइल सिस्टम तक पूर्ण पहुंच है: निर्माण, विलोपन, नाम बदलना, स्ट्रीम पढ़ना - जो कुछ भी आप चाहते हैं। हम बिल्ट-इन मॉड्यूल fs (File System) के माध्यम से काम करते हैं। यह फ़ाइलों के साथ काम करने के लिए एक स्विस आर्मी चाकू की तरह है।

\n\n

2. क्लाइंट-साइड जावास्क्रिप्ट (ब्राउज़र)

\n

ब्राउज़र सीमाओं वाला एक "सैंडबॉक्स" है। आप उपयोगकर्ता के कंप्यूटर से कोई भी फ़ाइल नहीं पढ़ सकते (अन्यथा हैकर्स जश्न मनाते)। लेकिन आप उन फ़ाइलों के साथ काम कर सकते हैं जिन्हें उपयोगकर्ता ने <input type="file"> के माध्यम से चुना है, या FileReader और Blob API के माध्यम से।

\n\n

इस लेख में, हम Node.js पर ध्यान केंद्रित करेंगे, लेकिन अंत में हम एक बोनस देंगे - ब्राउज़र के लिए एक उदाहरण।

\n\n

fs मॉड्यूल: आपका मुख्य उपकरण

\n\n

Node.js में, फ़ाइलों के साथ काम करना fs मॉड्यूल को शामिल करने से शुरू होता है:

\n\n
const fs = require('fs'); // पुरानी शैली\n// या\nimport fs from 'fs'; // यदि आप ES-मॉड्यूल का उपयोग कर रहे हैं
\n\n

fs के तीन ऑपरेशन मोड हैं: सिंक्रोनस, कॉलबैक पर एसिंक्रोनस, और प्रॉमिस पर एसिंक्रोनस। हम अंतिम का उपयोग करेंगे - async/await के साथ, क्योंकि यह आधुनिक और पढ़ने में आसान दृष्टिकोण है।

\n\n

फ़ाइल पढ़ना: सरल से जटिल तक

\n\n

मान लीजिए हमारे पास टेक्स्ट वाली एक फ़ाइल data.txt है। इसे पढ़ने का सबसे सरल तरीका:

\n\n
import { readFile } from 'fs/promises';\n\nasync function readMyFile() {\n  try {\n    const data = await readFile('data.txt', 'utf-8');\n    console.log(data);\n  } catch (err) {\n    console.error('पढ़ने में त्रुटि:', err.message);\n  }\n}\n\nreadMyFile();
\n\n

यहां क्या महत्वपूर्ण है? 'utf-8' - एन्कोडिंग। यदि आप इसे निर्दिष्ट नहीं करते हैं, तो आपको एक कच्चा बफर (Buffer) मिलेगा जिसे स्ट्रिंग में बदलना होगा। टेक्स्ट फ़ाइलों के लिए हमेशा एन्कोडिंग निर्दिष्ट करें।

\n\n

यदि फ़ाइल बड़ी है (उदाहरण के लिए, 500 MB की लॉग फ़ाइल), तो इसे पूरी तरह से पढ़ना एक बुरा विचार है। यहां स्ट्रीम (streams) बचाव में आती हैं:

\n\n
import { createReadStream } from 'fs';\nimport { createInterface } from 'readline';\n\nasync function readLargeFile() {\n  const stream = createReadStream('bigfile.log', 'utf-8');\n  const rl = createInterface({ input: stream });\n\n  for await (const line of rl) {\n    console.log('पंक्ति:', line);\n    // पढ़ते समय प्रत्येक पंक्ति को प्रोसेस करें\n  }\n}\n\nreadLargeFile();
\n\n

फ़ाइल में लिखना: बनाना और जोड़ना

\n\n

लेखन दो प्रकार का होता है: ओवरराइट (write) और अपेंड (append)। अंतर स्पष्ट है: write पुरानी फ़ाइल को मिटा देगा, append अंत में जोड़ देगा।

\n\n
import { writeFile, appendFile } from 'fs/promises';\n\n//                

ब्लॉग

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