Flutter मोबाइल विकास · पाठ

फ़ाइल सिस्टम संचालन

डिवाइस के फ़ाइल सिस्टम से पढ़ना और उसमें लिखना सीखें, जिससे बड़ी फ़ाइलों और कस्टम डेटा प्रारूपों का संग्रहण संभव हो।

पाठ 3, कुल 4 में से12 चरण

फ़ाइल सिस्टम संचालन, CoddyKit पर Flutter मोबाइल विकास का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Flutter मोबाइल विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Flutter मोबाइल विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

फ़ाइलों में डेटा संग्रहित करना

कभी-कभी आपके ऐप को डेटा सीधे उपकरण पर संग्रहित करने की आवश्यकता होती है। यहीं फ़ाइल सिस्टम संचालन उपयोगी होते हैं! छोटे कुंजी-मान डेटा के लिए shared_preferences या संरचित डेटा के लिए sqflite के विपरीत, फ़ाइल सिस्टम संचालन आपको फ़ाइलों को सीधे प्रबंधित करने देते हैं।

आप चित्र, ऑडियो या अपनी आवश्यकतानुसार स्वरूपित पाठ फ़ाइलों जैसे बड़े डेटा को संग्रहित कर सकते हैं, जो डेटाबेस या सरल कुंजी-मान युग्मों में अच्छी तरह से संग्रहीत नहीं हो पाते।

फ़ाइलें कहाँ संग्रहित करें?

फ़ाइलें पढ़ने या लिखने से पहले आपके ऐप को यह पता होना चाहिए कि वह उन्हें कहाँ संग्रहित कर सकता है। Flutter का path_provider पैकेज आपको अलग-अलग प्लेटफ़ॉर्म (iOS, Android, वेब, डेस्कटॉप) पर सामान्य निर्देशिका पथ सुरक्षित रूप से ढूँढ़ने में मदद करता है।

  • ऐप्लिकेशन दस्तावेज़ निर्देशिका: यहाँ आपका ऐप ऐसा उपयोगकर्ता-विशिष्ट डेटा संग्रहित कर सकता है जिसे स्थायी रूप से बनाए रखना हो।
  • अस्थायी निर्देशिका: ऐसे डेटा के लिए जिसे ऐप दोबारा खुलने के बाद भी बनाए रखना आवश्यक नहीं है, जैसे कैश की गई फ़ाइलें।

ऐप्लिकेशन पथ प्राप्त करना

ऐप्लिकेशन दस्तावेज़ निर्देशिका प्राप्त करने के लिए path_provider का उपयोग करें। पहले अपनी pubspec.yaml में path_provider जोड़ना याद रखें!

dependencies:
flutter:
sdk: flutter
path_provider: ^2.0.11

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  // Get the application documents directory
  Directory appDocDir = await getApplicationDocumentsDirectory();
  String appDocPath = appDocDir.path;

  print('App Documents Path: $appDocPath');
}

फ़ाइल संदर्भ बनाना

निर्देशिका पथ मिलने के बाद आप एक File ऑब्जेक्ट बना सकते हैं। यह ऑब्जेक्ट उपकरण के संग्रहण में उस खास पथ पर मौजूद फ़ाइल को दर्शाता है। इसका अर्थ यह नहीं है कि फ़ाइल अभी वास्तव में मौजूद है; यह केवल एक संदर्भ है।

पूरा फ़ाइल पथ बनाने के लिए आप निर्देशिका पथ को अपनी इच्छित फ़ाइल नाम के साथ जोड़ेंगे।

फ़ाइल पथ बनाना

ऐप्लिकेशन दस्तावेज़ पथ को फ़ाइल नाम के साथ जोड़कर File ऑब्जेक्ट बनाने का तरीका यहाँ दिया गया है। हमारे उदाहरण में हम एक सरल पाठ फ़ाइल नाम का उपयोग करेंगे।

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  Directory appDocDir = await getApplicationDocumentsDirectory();
  String appDocPath = appDocDir.path;

  // Define a filename
  String fileName = 'my_data.txt';

  // Create a File object
  File file = File('$appDocPath/$fileName');

  print('File path reference created: ${file.path}');
  // At this point, the file might not exist on disk yet.
}

फ़ाइलों में सामग्री सहेजना

File ऑब्जेक्ट डेटा लिखने के लिए विधियाँ उपलब्ध कराता है। सबसे सामान्य विधियाँ पाठ के लिए writeAsString() और बाइनरी डेटा के लिए writeAsBytes() हैं। ये संचालन अतुल्यकालिक होते हैं, इसलिए आप await का उपयोग करेंगे।

  • writeAsString(String contents, {FileMode mode = FileMode.write}): पाठ लिखता है। FileMode.write मौजूदा सामग्री को अधिलेखित करता है, जबकि FileMode.append अंत में सामग्री जोड़ता है।
  • writeAsBytes(List<int> bytes, {FileMode mode = FileMode.write}): कच्चे बाइट लिखता है।

एक सरल पाठ फ़ाइल लिखना

आइए अपनी my_data.txt फ़ाइल में कुछ पाठ सामग्री लिखें। यदि फ़ाइल मौजूद नहीं है, तो writeAsString उसे बना देगा। यदि वह मौजूद है, तो डिफ़ॉल्ट रूप से उसकी सामग्री अधिलेखित कर दी जाएगी।

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  Directory appDocDir = await getApplicationDocumentsDirectory();
  String appDocPath = appDocDir.path;
  String fileName = 'my_data.txt';
  File file = File('$appDocPath/$fileName');

  String content = 'Hello, CoddyKit learners!\nThis is a test message.';

  try {
    await file.writeAsString(content);
    print('Content written to ${file.path}');
    print('File exists: ${await file.exists()}');
  } catch (e) {
    print('Error writing file: $e');
  }
}

फ़ाइलों से सामग्री पढ़ना

जिस तरह आप लिख सकते हैं, उसी तरह फ़ाइलों से सामग्री पढ़ भी सकते हैं। readAsString() विधि पाठ फ़ाइलों के लिए उपयुक्त है, जबकि readAsBytes() का उपयोग बाइनरी डेटा के लिए किया जाता है।

पढ़ने का प्रयास करने से पहले यह जाँचना अच्छी पद्धति है कि फ़ाइल exists() करती है या नहीं, ताकि त्रुटियों से बचा जा सके।

फ़ाइल की सामग्री पढ़ना

अब आइए my_data.txt से वह सामग्री पढ़ें जिसे हमने अभी लिखा था। सुरक्षित रहने के लिए हम पहले जाँचेंगे कि फ़ाइल मौजूद है या नहीं।

import 'dart:io';
import 'package:path_provider/path_provider.dart';

void main() async {
  Directory appDocDir = await getApplicationDocumentsDirectory();
  String appDocPath = appDocDir.path;
  String fileName = 'my_data.txt';
  File file = File('$appDocPath/$fileName');

  if (await file.exists()) {
    try {
      String content = await file.readAsString();
      print('Content read from ${file.path}:\n$content');
    } catch (e) {
      print('Error reading file: $e');
    }
  } else {
    print('File does not exist: ${file.path}');
  }
}

फ़ाइलें हटाना

जब डेटा की आवश्यकता न रहे, तो आप उसे उपकरण के संग्रहण से हटा सकते हैं। File ऑब्जेक्ट की delete() विधि फ़ाइल को हटा देगी। यह संचालन भी अतुल्यकालिक है।

फ़ाइलें हटाते समय सावधान रहें, क्योंकि यह कार्रवाई आम तौर पर वापस नहीं की जा सकती!

अपनी समझ जाँचें

Flutter के फ़ाइल सिस्टम संचालन के बारे में निम्नलिखित में से कौन-से कथन TRUE हैं?

पाठ का सारांश

बहुत अच्छा! इस पाठ में आपने Flutter में उपकरण के फ़ाइल सिस्टम के साथ काम करना सीखा:

  • उपयुक्त संग्रहण निर्देशिकाएँ ढूँढ़ने के लिए path_provider का उपयोग किया।
  • विशिष्ट फ़ाइलों के संदर्भ के लिए File ऑब्जेक्ट बनाए।
  • writeAsString() का उपयोग करके फ़ाइलों में सामग्री लिखी।
  • readAsString() का उपयोग करके फ़ाइलों से सामग्री पढ़ी।
  • delete() से फ़ाइलें हटाना समझा।

फ़ाइल सिस्टम संचालन बड़े, अपनी आवश्यकतानुसार स्वरूपित या संवेदनशील डेटा को सीधे उपकरण पर संग्रहित करने के लिए महत्वपूर्ण हैं। अब आप अधिक उन्नत डेटा प्रबंधन का अध्ययन कर सकते हैं या Flutter के अन्य विषयों पर आगे बढ़ सकते हैं!

शुरुआत निःशुल्क

एआई शिक्षक के साथ Dart सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
22
पाठ
88

अक्सर पूछे जाने वाले प्रश्न

क्या “फ़ाइल सिस्टम संचालन” पाठ निःशुल्क है?

हाँ — Flutter मोबाइल विकास अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “फ़ाइल सिस्टम संचालन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Flutter मोबाइल विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“फ़ाइल सिस्टम संचालन” में मैं क्या सीखूँगा?

डिवाइस के फ़ाइल सिस्टम से पढ़ना और उसमें लिखना सीखें, जिससे बड़ी फ़ाइलों और कस्टम डेटा प्रारूपों का संग्रहण संभव हो। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Flutter मोबाइल विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Flutter मोबाइल विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Flutter मोबाइल विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“फ़ाइल सिस्टम संचालन” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Flutter मोबाइल विकास पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Flutter मोबाइल विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. डेटा के लिए Shared Preferences
  2. SQLite डेटाबेस एकीकरण
  3. फ़ाइल सिस्टम संचालन
  4. Hive और NoSQL स्थानीय संग्रहण
← Flutter मोबाइल विकास पर वापस जाएँ