File Handling in C++ Notes | File Streams, Reading, Writing, File Modes & Random Access Files | Basic Computer Engineering | RGPV BTech First Year
File Handling in C++ Notes | File Streams, Reading, Writing, File Modes & Random Access Files | Basic Computer Engineering | RGPV BTech First Year
File Handling in C++
File Handling C++ Programming का एक अत्यंत महत्वपूर्ण Concept है जिसका उपयोग Data को Permanent रूप से Store करने तथा आवश्यकता पड़ने पर उसे पुनः Read एवं Update करने के लिए किया जाता है। सामान्य Variables में Store किया गया Data Program समाप्त होते ही नष्ट हो जाता है, जबकि File में Store किया गया Data लंबे समय तक सुरक्षित रहता है।
C++ में File Handling की सुविधा fstream Library द्वारा प्रदान की जाती है। इसकी सहायता से Program Files को Create, Open, Read, Write, Append तथा Close कर सकता है। File Handling Database, Banking Software, School Management System, Hospital Management System तथा अन्य Real World Applications का महत्वपूर्ण भाग है।
RGPV B.Tech First Year के Basic Computer Engineering Subject में File Handling in C++ अत्यंत महत्वपूर्ण Topic है। University Examination, Practical तथा Viva में File Streams, File Modes, Reading, Writing तथा Random Access File से संबंधित प्रश्न नियमित रूप से पूछे जाते हैं।
↓
Open File
↓
Read / Write Data
↓
Close File
Introduction to File Handling
Program में यदि केवल Variables का उपयोग किया जाए, तो Program समाप्त होने पर पूरा Data समाप्त हो जाता है। इस समस्या का समाधान File Handling द्वारा किया जाता है। File में Data को Secondary Storage (Hard Disk, SSD आदि) पर Store किया जाता है जिससे वह लंबे समय तक सुरक्षित रहता है।
File Handling की सहायता से User Information, Student Records, Employee Details, Banking Transactions तथा अन्य महत्वपूर्ण Data को भविष्य के उपयोग के लिए सुरक्षित रखा जा सकता है।
What is a File?
File Data का एक संग्रह (Collection) होती है जिसे Secondary Storage Device में Store किया जाता है। File में Text, Numbers, Images अथवा अन्य प्रकार की Information सुरक्षित रखी जा सकती है। Program आवश्यकता अनुसार File से Data Read तथा Write कर सकता है।
ऊपर दिए गए उदाहरण विभिन्न प्रकार की Files को दर्शाते हैं जिनमें अलग-अलग प्रकार का Data Store किया जा सकता है।
What is File Handling?
File Handling वह प्रक्रिया है जिसके द्वारा Program File को Create, Open, Read, Write, Modify तथा Close करता है। C++ में File Handling के लिए ifstream, ofstream तथा fstream Classes का उपयोग किया जाता है।
File Handling Program को Permanent Data Storage की सुविधा प्रदान करता है, जिससे Program बंद होने के बाद भी Data सुरक्षित रहता है।
Need of File Handling
Large Applications में Data को लंबे समय तक सुरक्षित रखना आवश्यक होता है। यदि Data केवल RAM में Store किया जाए, तो Computer बंद होने पर वह समाप्त हो जाएगा। इसलिए File Handling का उपयोग किया जाता है।
- Data को Permanent रूप से Store करने के लिए।
- Program Restart होने के बाद भी Data सुरक्षित रखने के लिए।
- Large Amount of Data Manage करने के लिए।
- Student Records एवं Employee Records Store करने के लिए।
- Reports तथा Documents Generate करने के लिए।
- Database एवं Business Applications विकसित करने के लिए।
- Backup एवं Recovery की सुविधा प्रदान करने के लिए।
Advantages of File Handling
| Advantage | Description |
|---|---|
| Permanent Storage | Data लंबे समय तक सुरक्षित रहता है। |
| Large Data Storage | बहुत अधिक मात्रा में Data Store किया जा सकता है। |
| Easy Retrieval | आवश्यकता पड़ने पर Data आसानी से Read किया जा सकता है। |
| Data Backup | Important Information का Backup रखा जा सकता है। |
| Business Applications | Real World Software Development में व्यापक उपयोग। |
Characteristics of File Handling
File Handling की कुछ महत्वपूर्ण विशेषताएँ (Characteristics) होती हैं जो इसे सामान्य Memory Storage से अलग बनाती हैं। File Handling की सहायता से Data को Permanent रूप से Store, Retrieve तथा Modify किया जा सकता है।
- Data Permanent Storage में सुरक्षित रहता है।
- Program समाप्त होने के बाद भी Data उपलब्ध रहता है।
- Large Amount of Data Store किया जा सकता है।
- File से Data Read एवं Write दोनों किया जा सकता है।
- Sequential तथा Random दोनों प्रकार की Access संभव है।
- File को आवश्यकता अनुसार Open तथा Close किया जा सकता है।
- Business एवं Database Applications में व्यापक उपयोग होता है।
File Stream Classes in C++
C++ में File Handling के लिए <fstream> Header File का उपयोग किया जाता है। इस Library में तीन प्रमुख Stream Classes उपलब्ध हैं जो File Operations को सरल बनाती हैं।
| Class | Purpose |
|---|---|
| ifstream | File से Data Read करने के लिए। |
| ofstream | File में Data Write करने के लिए। |
| fstream | एक ही File में Read तथा Write दोनों Operations करने के लिए। |
ifstream Class
ifstream का पूरा नाम Input File Stream है। इसका उपयोग किसी File से Data Read करने के लिए किया जाता है। यदि File पहले से उपलब्ध है, तो Program उसमें Store Information को पढ़ सकता है।
इस उदाहरण में fin नाम का Input File Stream Object बनाया गया है।
ofstream Class
ofstream का पूरा नाम Output File Stream है। इसका उपयोग File में नया Data Write करने अथवा नई File Create करने के लिए किया जाता है।
यदि File पहले से मौजूद नहीं है, तो ofstream नई File Create कर सकता है।
fstream Class
fstream एक General Purpose File Stream Class है जो एक ही Object द्वारा File को Read तथा Write दोनों करने की सुविधा प्रदान करती है।
जब Program में File से Data Read भी करना हो तथा उसी File में नया Data Write भी करना हो, तब fstream सबसे उपयुक्त Class होती है।
Difference between ifstream, ofstream and fstream
| ifstream | ofstream | fstream |
|---|---|---|
| केवल Read Operation करता है। | केवल Write Operation करता है। | Read तथा Write दोनों Operations करता है। |
| Input Stream। | Output Stream। | Input एवं Output दोनों Stream। |
| Existing File पढ़ने के लिए। | नई File Create अथवा Data Write करने के लिए। | File Update करने के लिए। |
| Data Retrieve करता है। | Data Store करता है। | Data Retrieve एवं Store दोनों करता है। |
Writing Data into a File
C++ में File के अंदर Data Store करने के लिए सामान्यतः ofstream अथवा fstream Class का उपयोग किया जाता है। Write Operation द्वारा Program किसी File में नया Data लिख सकता है या पहले से मौजूद Data को Replace कर सकता है।
ऊपर दिए गए उदाहरण में student.txt File के अंदर Rahul नाम Store किया गया है।
Reading Data from a File
यदि File में पहले से Data उपलब्ध है, तो उसे Program द्वारा Read किया जा सकता है। इसके लिए सामान्यतः ifstream Class का उपयोग किया जाता है।
Output
इस उदाहरण में File से Data Read करके Screen पर Display किया गया है।
Writing Multiple Records into a File
Program में कई Records अथवा Multiple Lines भी File में Store की जा सकती हैं। इसके लिए प्रत्येक Record को अलग-अलग Write किया जाता है।
इस प्रकार File में कई Records Sequential Order में Store किए जा सकते हैं।
Reading Multiple Records
यदि File में अनेक Records उपलब्ध हों, तो Program Loop की सहायता से सभी Records Read कर सकता है।
यह Loop File के अंत तक सभी Records Read करता रहता है।
Appending Data into a File
यदि Existing Data को हटाए बिना File के अंत में नया Data जोड़ना हो, तो ios::app Mode का उपयोग किया जाता है।
Append Mode का उपयोग करने पर पहले से मौजूद Data सुरक्षित रहता है तथा नया Data File के अंत में जुड़ जाता है।
Difference between Reading and Writing
| Reading | Writing |
|---|---|
| File से Data प्राप्त किया जाता है। | File में नया Data Store किया जाता है। |
| ifstream का उपयोग किया जाता है। | ofstream का उपयोग किया जाता है। |
| Input Operation कहलाता है। | Output Operation कहलाता है। |
| Existing Data पढ़ा जाता है। | नया Data लिखा जाता है। |
| Display अथवा Processing के लिए उपयोगी। | Permanent Storage के लिए उपयोगी। |
Writing Data into a File
C++ में File के अंदर Data Store करने के लिए सामान्यतः ofstream अथवा fstream Class का उपयोग किया जाता है। Write Operation द्वारा Program किसी File में नया Data लिख सकता है या पहले से मौजूद Data को Replace कर सकता है।
ऊपर दिए गए उदाहरण में student.txt File के अंदर Rahul नाम Store किया गया है।
Reading Data from a File
यदि File में पहले से Data उपलब्ध है, तो उसे Program द्वारा Read किया जा सकता है। इसके लिए सामान्यतः ifstream Class का उपयोग किया जाता है।
Output
इस उदाहरण में File से Data Read करके Screen पर Display किया गया है।
Writing Multiple Records into a File
Program में कई Records अथवा Multiple Lines भी File में Store की जा सकती हैं। इसके लिए प्रत्येक Record को अलग-अलग Write किया जाता है।
इस प्रकार File में कई Records Sequential Order में Store किए जा सकते हैं।
Reading Multiple Records
यदि File में अनेक Records उपलब्ध हों, तो Program Loop की सहायता से सभी Records Read कर सकता है।
यह Loop File के अंत तक सभी Records Read करता रहता है।
Appending Data into a File
यदि Existing Data को हटाए बिना File के अंत में नया Data जोड़ना हो, तो ios::app Mode का उपयोग किया जाता है।
Append Mode का उपयोग करने पर पहले से मौजूद Data सुरक्षित रहता है तथा नया Data File के अंत में जुड़ जाता है।
Difference between Reading and Writing
| Reading | Writing |
|---|---|
| File से Data प्राप्त किया जाता है। | File में नया Data Store किया जाता है। |
| ifstream का उपयोग किया जाता है। | ofstream का उपयोग किया जाता है। |
| Input Operation कहलाता है। | Output Operation कहलाता है। |
| Existing Data पढ़ा जाता है। | नया Data लिखा जाता है। |
| Display अथवा Processing के लिए उपयोगी। | Permanent Storage के लिए उपयोगी। |
Applications of File Handling
File Handling का उपयोग लगभग प्रत्येक Real World Software Application में किया जाता है जहाँ Data को Permanent रूप से Store करना आवश्यक होता है। इसकी सहायता से बड़ी मात्रा में Data को सुरक्षित रखा जा सकता है तथा आवश्यकता पड़ने पर आसानी से Retrieve किया जा सकता है।
| Application | Purpose |
|---|---|
| Student Management System | Student Records Store एवं Retrieve करना। |
| Banking System | Customer Accounts एवं Transactions सुरक्षित रखना। |
| Library Management | Books तथा Members का Record Maintain करना। |
| Hospital Management | Patient Records एवं Medical History Store करना। |
| Payroll System | Employee Salary एवं Attendance Data Store करना। |
| Inventory Management | Products एवं Stock Information Manage करना। |
Advantages of File Handling
- Data को Permanent रूप से Store किया जा सकता है।
- Large Amount of Data को आसानी से Manage किया जा सकता है।
- Program बंद होने के बाद भी Data सुरक्षित रहता है।
- Read, Write एवं Update Operations सरल हो जाते हैं।
- Backup एवं Recovery की सुविधा उपलब्ध होती है।
- Business तथा Database Applications के लिए अत्यंत उपयोगी है।
- Random Access द्वारा Specific Record जल्दी प्राप्त किया जा सकता है।
- Memory का Efficient उपयोग होता है।
Limitations of File Handling
- File Corruption होने पर Data Loss हो सकता है।
- Incorrect File Mode चुनने पर Data Overwrite हो सकता है।
- Large Files में Processing अपेक्षाकृत धीमी हो सकती है।
- File Permission Issues के कारण Access में समस्या आ सकती है।
- Error Handling न होने पर Program Crash हो सकता है।
- Binary Files को समझना एवं Debug करना कठिन हो सकता है।
Summary
| Concept | Description |
|---|---|
| File | Permanent Storage में रखा गया Data का संग्रह। |
| File Handling | File को Create, Open, Read, Write, Modify एवं Close करने की प्रक्रिया। |
| ifstream | File से Data Read करने के लिए। |
| ofstream | File में Data Write करने के लिए। |
| fstream | Read तथा Write दोनों Operations के लिए। |
| Random Access File | किसी भी Record को Direct Access करने की सुविधा। |
| seekg(), seekp() | File Pointer को नई Position पर ले जाने के लिए। |
| tellg(), tellp() | Current File Pointer Position ज्ञात करने के लिए। |
Important Viva Questions
- File Handling क्या है?
- ifstream, ofstream तथा fstream में क्या अंतर है?
- File को Open तथा Close कैसे किया जाता है?
- ios::app तथा ios::out में क्या अंतर है?
- Random Access File क्या है?
- seekg() तथा seekp() Functions का उपयोग क्या है?
- tellg() तथा tellp() क्या Return करते हैं?
- EOF (End of File) क्या है?
- Append Mode का उपयोग कब किया जाता है?
- File Handling के मुख्य Advantages लिखिए।
University Examination Important Questions
- File Handling क्या है? इसकी आवश्यकता एवं Advantages लिखिए।
- ifstream, ofstream तथा fstream Classes को उदाहरण सहित समझाइए।
- File Opening Modes को उदाहरण सहित समझाइए।
- File में Data Read तथा Write करने का Program लिखिए।
- Random Access File क्या है? इसके Advantages लिखिए।
- seekg(), seekp(), tellg() तथा tellp() Functions को उदाहरण सहित समझाइए।
- Sequential Access तथा Random Access File में अंतर लिखिए।
- File Handling के Applications लिखिए।
- Append Mode तथा Truncate Mode में अंतर लिखिए।
- C++ में File Handling की पूरी प्रक्रिया उदाहरण सहित समझाइए।
Exam Tips
- ifstream केवल Read Operation के लिए उपयोग होता है।
- ofstream केवल Write Operation के लिए उपयोग होता है।
- fstream Read एवं Write दोनों के लिए उपयोग किया जाता है।
- ios::app File के अंत में Data जोड़ता है।
- seekg() Reading Pointer तथा seekp() Writing Pointer को Move करते हैं।
- tellg() एवं tellp() वर्तमान Pointer Position Return करते हैं।
- RGPV Exam में File Modes तथा Stream Classes पर Short Notes अक्सर पूछे जाते हैं।
Conclusion
File Handling in C++ Object Oriented Programming तथा Real World Software Development का अत्यंत महत्वपूर्ण भाग है। इसकी सहायता से Data को Permanent रूप से Store, Read, Write तथा Update किया जा सकता है। ifstream, ofstream एवं fstream Classes File Operations को सरल बनाती हैं, जबकि Random Access File, seekg(), seekp(), tellg() तथा tellp() Functions Advanced File Processing की सुविधा प्रदान करते हैं। Banking, Hospital, School, Inventory तथा Enterprise Applications में File Handling का व्यापक उपयोग किया जाता है। RGPV B.Tech First Year के विद्यार्थियों के लिए यह Topic Theory, Practical तथा Viva तीनों दृष्टिकोण से अत्यंत महत्वपूर्ण है।
Related Articles
Arrays of Objects in C++ Notes | Object Array, Declaration, Initialization & Examples | Basic Computer Engineering | RGPV BTech First Year
Arrays ...
Read More →Object as Function Argument & Returning Object from Function in C++ Notes | Pass Object to Function, Return Object & Examples | Basic Computer Engineering | RGPV BTech First Year
Object ...
Read More →Pointers to Objects in C++ Notes | Object Pointer, Accessing Members using Pointer & Examples | Basic Computer Engineering | RGPV BTech First Year
Pointer...
Read More →Dynamic Memory Allocation in C++ Notes | new & delete Operators, Heap Memory, Dynamic Objects & Examples | Basic Computer Engineering | RGPV BTech First Year
Dynamic...
Read More →this Pointer in C++ Notes | this Keyword, Uses, Advantages & Examples | Basic Computer Engineering | RGPV BTech First Year
this Po...
Read More →