File Handling in C++ Notes | ifstream, ofstream, fstream, File Modes & File Operations | Basic Computer Engineering | RGPV BTech First Year
File Handling in C++ Notes | ifstream, ofstream, fstream, File Modes & File Operations | Basic Computer Engineering | RGPV BTech First Year
File Handling in C++
File Handling C++ की एक महत्वपूर्ण सुविधा (Feature) है जिसकी सहायता से Program में Data को Permanent रूप से Store तथा Retrieve किया जा सकता है। सामान्यतः Program Execute होने के दौरान Data Memory (RAM) में Store रहता है, लेकिन Program समाप्त होने के बाद वह Data नष्ट (Lost) हो जाता है। यदि Data को भविष्य में भी सुरक्षित रखना हो, तो उसे File में Store किया जाता है।
C++ में File Handling मुख्य रूप से ifstream, ofstream तथा fstream Classes के माध्यम से की जाती है। इन Classes की सहायता से File Create करना, Data Write करना, Data Read करना, Update करना तथा File Close करना संभव होता है।
RGPV B.Tech First Year के Basic Computer Engineering Subject में File Handling in C++ एक अत्यंत महत्वपूर्ण Topic है। University Examination, Practical तथा Viva में File Stream Classes, File Modes, Read एवं Write Operations तथा File Programs से संबंधित प्रश्न नियमित रूप से पूछे जाते हैं।
↓
Open File
↓
Read / Write Data
↓
Save Information
↓
Close File
Introduction to File Handling
File Handling ऐसी प्रक्रिया है जिसके द्वारा Program Data को किसी File में Store करता है तथा आवश्यकता पड़ने पर उसी File से Data को पुनः Read करता है। File Handling के माध्यम से Data लंबे समय तक सुरक्षित रखा जा सकता है।
Database उपलब्ध न होने की स्थिति में छोटे Software Projects, Student Management Systems, Employee Records, Billing Software तथा Report Generation जैसी Applications में File Handling का व्यापक उपयोग किया जाता है।
What is a File?
File Secondary Storage (Hard Disk, SSD आदि) पर Store किया गया Data का Collection होती है। File में Text, Numbers, Images अथवा अन्य किसी प्रकार का Digital Data सुरक्षित रखा जा सकता है।
| File Type | Purpose |
|---|---|
| Text File (.txt) | सामान्य Text Data Store करने के लिए। |
| Binary File (.dat) | Binary Format में Data Store करने के लिए। |
| CSV File (.csv) | Tabular Data Store करने के लिए। |
| Log File (.log) | Program Events तथा Errors Store करने के लिए। |
What is File Handling?
File Handling वह प्रक्रिया है जिसके द्वारा Program किसी File को Open करता है, उसमें Data Read अथवा Write करता है तथा कार्य पूर्ण होने पर उसे Close करता है।
C++ में File Handling मुख्य रूप से <fstream> Header File द्वारा उपलब्ध कराई जाती है।
इस Header File में File Stream Classes उपलब्ध होती हैं जिनका उपयोग File Operations के लिए किया जाता है।
Need of File Handling
यदि Program का Data भविष्य में भी सुरक्षित रखना हो, तो File Handling आवश्यक होती है। RAM में Store Data Temporary होता है, जबकि File में Store Data Permanent रहता है।
- Data को Permanent रूप से Store करने के लिए।
- Program बंद होने के बाद भी Data सुरक्षित रखने के लिए।
- Large Amount of Data Manage करने के लिए।
- Reports तथा Logs Generate करने के लिए।
- Student तथा Employee Records Maintain करने के लिए।
- Database उपलब्ध न होने पर Data Storage के लिए।
- Professional Software Applications विकसित करने के लिए।
Advantages of File Handling
| Advantage | Description |
|---|---|
| Permanent Storage | Data लंबे समय तक सुरक्षित रहता है। |
| Large Data Storage | बहुत अधिक मात्रा में Data Store किया जा सकता है। |
| Easy Retrieval | Stored Data को आवश्यकता अनुसार Read किया जा सकता है। |
| Simple Implementation | छोटे Projects में Database की आवश्यकता नहीं होती। |
| Reusable Data | एक ही File का कई बार उपयोग किया जा सकता है। |
Streams in C++
Stream C++ में Characters अथवा Bytes के Flow (प्रवाह) को कहा जाता है। Program तथा File के बीच Data का आदान-प्रदान (Transfer) Streams के माध्यम से होता है। यदि Data Program से File की ओर जाता है तो उसे Output Stream कहा जाता है और यदि Data File से Program की ओर आता है तो उसे Input Stream कहा जाता है।
↓
Output Stream
↓
File
↓
Input Stream
↓
Program
File Stream Classes
C++ में File Handling के लिए <fstream> Header File तीन प्रमुख Stream Classes प्रदान करती है। प्रत्येक Class का अलग उद्देश्य होता है।
| Class | Purpose |
|---|---|
| ifstream | File से Data Read करने के लिए। |
| ofstream | File में Data Write करने के लिए। |
| fstream | एक ही File में Read तथा Write दोनों Operations करने के लिए। |
ifstream (Input File Stream)
ifstream Class का उपयोग File से Data Read करने के लिए किया जाता है। जब किसी Existing File का Data Program में लाना हो, तब Input File Stream का उपयोग किया जाता है।
ऊपर दिए गए उदाहरण में student.txt File Read Mode में Open की गई है।
ofstream (Output File Stream)
ofstream Class का उपयोग File में Data Write करने के लिए किया जाता है। यदि File पहले से मौजूद नहीं है, तो अधिकांश स्थितियों में नई File Create कर दी जाती है।
इस उदाहरण में Program student.txt File में Data Store करने के लिए तैयार है।
fstream (Input + Output File Stream)
fstream Class का उपयोग तब किया जाता है जब एक ही File पर Read तथा Write दोनों Operations करने हों। यह Input तथा Output दोनों Stream की सुविधाएँ प्रदान करती है।
fstream विशेष रूप से Record Updating, Database File Management तथा Random File Access जैसी Applications में उपयोगी होती है।
Opening a File
किसी भी File पर कार्य करने से पहले उसे Open करना आवश्यक होता है। File को Constructor अथवा open() Member Function की सहायता से Open किया जा सकता है।
यदि File Successfully Open हो जाती है, तब Program Read अथवा Write Operation प्रारम्भ कर सकता है।
Closing a File
कार्य पूर्ण होने के बाद File को close() Function द्वारा बंद (Close) करना आवश्यक होता है। इससे सभी Pending Operations पूर्ण हो जाते हैं तथा System Resources मुक्त (Release) हो जाते हैं।
File को उचित समय पर Close करना अच्छी Programming Practice मानी जाती है।
Important Points
- Stream Data Transfer का माध्यम होती है।
- ifstream केवल File Reading के लिए उपयोग होती है।
- ofstream केवल File Writing के लिए उपयोग होती है।
- fstream Read तथा Write दोनों Operations को Support करती है।
- open() Function File को Open करता है।
- close() Function File को सुरक्षित रूप से Close करता है।
- RGPV Practical एवं Viva में File Stream Classes तथा File Opening/Closing अत्यंत महत्वपूर्ण Topics हैं।
File Modes in C++
File Modes यह निर्धारित करते हैं कि File को किस प्रकार Open किया जाएगा। C++ में विभिन्न File Modes उपलब्ध हैं जिनका उपयोग Reading, Writing, Appending तथा Binary File Operations के लिए किया जाता है। आवश्यकता अनुसार एक या अधिक Modes को Combine करके भी उपयोग किया जा सकता है।
| File Mode | Purpose |
|---|---|
| ios::in | File को Read Mode में Open करता है। |
| ios::out | File को Write Mode में Open करता है। |
| ios::app | Existing Data के अंत में नया Data जोड़ता है। |
| ios::ate | File Open होने के बाद Pointer को File के अंत में ले जाता है। |
| ios::binary | Binary Mode में File Open करता है। |
| ios::trunc | पुरानी File का Data हटाकर नई File की तरह Open करता है। |
Using File Modes
एक से अधिक File Modes को | (Bitwise OR) Operator की सहायता से Combine किया जा सकता है।
ऊपर दिए गए उदाहरण में File को Read तथा Write दोनों Modes में Open किया गया है।
Writing Data into a File
यदि Program से किसी File में Data Store करना हो, तो ofstream अथवा fstream का उपयोग किया जाता है। Data लिखने के लिए सामान्यतः << Operator का उपयोग किया जाता है।
ऊपर दिए गए Program में Rahul नाम File में Write किया गया है।
Reading Data from a File
File में पहले से उपलब्ध Data को Program में पढ़ने (Read) के लिए ifstream तथा >> Operator का उपयोग किया जाता है।
Output
इस उदाहरण में Program ने File से Data Read करके उसे Screen पर Display किया है।
Checking File Successfully Opened
किसी भी File पर Operation प्रारम्भ करने से पहले यह जाँचना आवश्यक होता है कि File Successfully Open हुई है या नहीं। इसके लिए is_open() Function का उपयोग किया जाता है।
यदि File उपलब्ध नहीं होगी, तो Program उचित Error Message प्रदर्शित करेगा।
Common File Operations
| Operation | Purpose |
|---|---|
| open() | File Open करना। |
| close() | File Close करना। |
| is_open() | File Successfully Open हुई या नहीं, जाँचना। |
| << | File में Data Write करना। |
| >> | File से Data Read करना। |
Important Points
- ios::in Reading के लिए उपयोग होता है।
- ios::out Writing के लिए उपयोग होता है।
- ios::app Existing Data के अंत में नया Data जोड़ता है।
- ios::binary Binary Files के लिए उपयोग किया जाता है।
- is_open() File Open होने की पुष्टि करता है।
- File Operations पूर्ण होने के बाद हमेशा close() Function का उपयोग करना चाहिए।
- RGPV Practical एवं Viva में File Modes, Read/Write Programs तथा is_open() Function अत्यंत महत्वपूर्ण Topics हैं।
Random File Access
Random File Access ऐसी तकनीक है जिसके द्वारा File के किसी भी स्थान (Position) पर सीधे पहुँचा जा सकता है। Sequential Reading की तरह शुरुआत से पूरा Data पढ़ने की आवश्यकता नहीं होती। C++ में Random File Access के लिए मुख्य रूप से seekg(), seekp(), tellg() तथा tellp() Functions का उपयोग किया जाता है।
| Function | Purpose |
|---|---|
| seekg() | Read Pointer को नई Position पर ले जाता है। |
| seekp() | Write Pointer को नई Position पर ले जाता है। |
| tellg() | Read Pointer की वर्तमान Position बताता है। |
| tellp() | Write Pointer की वर्तमान Position बताता है। |
ऊपर दिए गए उदाहरण में Read Pointer File के 10वें Byte पर पहुँच जाता है।
EOF (End of File) Handling
जब Program File का पूरा Data Read कर लेता है और File का अंत (End of File) आ जाता है, तब EOF (End of File) की स्थिति उत्पन्न होती है। C++ में इसे Handle करने के लिए eof() Function का उपयोग किया जाता है।
यह Loop तब तक चलता है जब तक File का अंतिम Data Read नहीं हो जाता।
Complete File Writing Program
Output
Complete File Reading Program
Output
Advantages of File Handling
- Data Permanent रूप से सुरक्षित रहता है।
- Large Amount of Data आसानी से Store किया जा सकता है।
- Program बंद होने के बाद भी Data उपलब्ध रहता है।
- Reports तथा Records आसानी से Maintain किए जा सकते हैं।
- File को कई Programs द्वारा उपयोग किया जा सकता है।
- Database उपलब्ध न होने पर प्रभावी Data Storage प्रदान करता है।
- Professional Software Development में व्यापक रूप से उपयोग किया जाता है।
Limitations of File Handling
- Database की तुलना में Searching धीमी हो सकती है।
- Concurrent Access को Manage करना कठिन होता है।
- Data Security सीमित होती है।
- Improper File Handling से Data Corruption हो सकता है।
- Large Files पर Performance कम हो सकती है।
- Manual Backup तथा Recovery की आवश्यकता होती है।
Applications of File Handling
| Application | Purpose |
|---|---|
| Student Management System | Student Records Store करना। |
| Employee Management | Employee Information Maintain करना। |
| Billing Software | Invoices तथा Transaction Records Store करना। |
| Hospital Management | Patient Records सुरक्षित रखना। |
| Log Management | System Events तथा Error Logs Store करना। |
| Report Generation | Reports को File में Save करना। |
Best Practices
- File Open होने के बाद हमेशा उसकी स्थिति is_open() से जाँचें।
- कार्य समाप्त होने पर close() Function अवश्य Call करें।
- उचित File Mode का चयन करें।
- Binary तथा Text Files का सही उपयोग करें।
- EOF Condition को Handle करें।
- Random File Access केवल आवश्यकता होने पर उपयोग करें।
- Error Handling तथा Proper Validation अवश्य लागू करें।
Applications of File Handling
File Handling का उपयोग लगभग प्रत्येक प्रकार के Software में Permanent Data Storage के लिए किया जाता है। जब किसी Application का Data Program बंद होने के बाद भी सुरक्षित रखना हो, तब File Handling सबसे प्रभावी तकनीकों में से एक होती है। छोटे Projects से लेकर Enterprise Applications तक इसका व्यापक उपयोग किया जाता है।
| Application | Purpose |
|---|---|
| Student Management System | Student Records तथा Marks सुरक्षित रखना। |
| Employee Management System | Employee Details तथा Salary Records Store करना। |
| Hospital Management System | Patient Information तथा Medical History सुरक्षित रखना। |
| Banking Software | Transaction History तथा Account Details Store करना। |
| Billing Software | Bills, Invoices तथा Payment Records सुरक्षित रखना। |
| Log Management | System Logs तथा Error Reports Store करना। |
| Report Generation | Generated Reports को File में Save करना। |
Advantages of File Handling
- Program बंद होने के बाद भी Data सुरक्षित रहता है।
- Large Amount of Data आसानी से Store किया जा सकता है।
- Data को आवश्यकता अनुसार Read तथा Update किया जा सकता है।
- Database उपलब्ध न होने पर प्रभावी विकल्प प्रदान करता है।
- Reports तथा Records को लंबे समय तक सुरक्षित रखा जा सकता है।
- Program तथा Data को अलग-अलग Maintain किया जा सकता है।
- Professional Desktop Applications में व्यापक रूप से उपयोग किया जाता है।
Limitations of File Handling
- Searching Database की तुलना में धीमी हो सकती है।
- Concurrent Users को Handle करना कठिन होता है।
- Security Features सीमित होती हैं।
- Improper File Closing से Data Corruption हो सकता है।
- Large Files के साथ Performance कम हो सकती है।
- Backup तथा Recovery Manual रूप से करनी पड़ सकती है।
- Complex Applications में Database अधिक उपयुक्त रहता है।
Best Practices
- File Open करने के बाद हमेशा is_open() द्वारा उसकी स्थिति जाँचें।
- कार्य समाप्त होने पर हमेशा close() Function Call करें।
- सही File Mode (ios::in, ios::out, ios::app) का चयन करें।
- Read तथा Write Operations के दौरान Error Checking करें।
- Binary तथा Text Files का उपयोग आवश्यकता अनुसार करें।
- Random File Access केवल आवश्यकता होने पर उपयोग करें।
- Exception Handling के साथ File Operations करना अधिक सुरक्षित माना जाता है।
Real Life Example
मान लीजिए किसी College Management System में प्रत्येक Student का Name, Roll Number तथा Marks File में Store किए जाते हैं। जब नया Student Admission लेता है, तब Program ofstream द्वारा उसकी जानकारी File में Save करता है। बाद में Result देखने के समय ifstream उसी File से Student का Data Read करके Screen पर प्रदर्शित करता है। यदि किसी Student की जानकारी Update करनी हो, तो fstream तथा Random File Access का उपयोग करके Record को संशोधित किया जा सकता है। इस प्रकार File Handling Data को लंबे समय तक सुरक्षित रखने का सरल एवं प्रभावी माध्यम है।
Working of File Handling
↓
Open File
↓
Check File Status
↓
Read / Write Data
↓
Process Information
↓
Close File
↓
Program Ends Successfully
Summary
File Handling C++ की एक महत्वपूर्ण सुविधा है जिसकी सहायता से Program का Data Permanent रूप से File में Store किया जा सकता है। C++ में File Handling मुख्य रूप से ifstream, ofstream तथा fstream Stream Classes द्वारा की जाती है। ifstream का उपयोग File से Data Read करने के लिए, ofstream का उपयोग File में Data Write करने के लिए तथा fstream का उपयोग Read एवं Write दोनों Operations के लिए किया जाता है। C++ विभिन्न File Modes जैसे ios::in, ios::out, ios::app, ios::binary तथा ios::trunc प्रदान करता है। Random File Access के लिए seekg(), seekp(), tellg() तथा tellp() Functions उपयोग किए जाते हैं। File Handling Student Management, Banking, Hospital Management, Billing तथा Report Generation जैसी अनेक Applications में व्यापक रूप से उपयोग की जाती है।
| Concept | Description |
|---|---|
| File | Permanent Data Storage का माध्यम। |
| File Handling | File को Open, Read, Write तथा Close करने की प्रक्रिया। |
| ifstream | File से Data Read करने के लिए। |
| ofstream | File में Data Write करने के लिए। |
| fstream | Read तथा Write दोनों Operations के लिए। |
| File Modes | File को विभिन्न Modes में Open करने के लिए। |
| Random File Access | File की किसी भी Position पर सीधे पहुँचना। |
| Applications | Student Records, Banking, Billing, Reports तथा Log Management। |
Important Viva Questions
- File Handling क्या है?
- File क्या होती है?
- ifstream क्या है?
- ofstream क्या है?
- fstream क्या है?
- Text File तथा Binary File में क्या अंतर है?
- File Modes क्या होते हैं?
- ios::app तथा ios::out में क्या अंतर है?
- seekg() तथा seekp() Functions क्या हैं?
- EOF (End of File) क्या है?
University Examination Important Questions
- File Handling क्या है? उदाहरण सहित समझाइए।
- ifstream, ofstream तथा fstream Classes का वर्णन कीजिए।
- File Modes को उदाहरण सहित समझाइए।
- Text File तथा Binary File में अंतर स्पष्ट कीजिए।
- Random File Access को उदाहरण सहित समझाइए।
- seekg(), seekp(), tellg() तथा tellp() Functions का वर्णन कीजिए।
- File में Data Read तथा Write करने का Program लिखिए।
- EOF Handling क्या है? उदाहरण सहित समझाइए।
- File Handling के Advantages तथा Applications लिखिए।
- Student Record Management का File Handling Program लिखिए।
Exam Tips
- ifstream, ofstream तथा fstream का अंतर अवश्य याद रखें।
- ios::in, ios::out, ios::app, ios::binary तथा ios::trunc File Modes परीक्षा में अत्यंत महत्वपूर्ण हैं।
- open(), close(), is_open() तथा eof() Functions का अभ्यास करें।
- Random File Access के लिए seekg(), seekp(), tellg() तथा tellp() Functions अवश्य याद रखें।
- Text File तथा Binary File का Comparison Table परीक्षा में अक्सर पूछा जाता है।
- File Reading तथा File Writing Programs का नियमित अभ्यास करें।
- RGPV Practical एवं Viva में File Handling आधारित Programs अत्यंत महत्वपूर्ण होते हैं।
Conclusion
File Handling C++ Programming का एक अत्यंत महत्वपूर्ण भाग है जो Program के Data को Permanent रूप से Store तथा Manage करने की सुविधा प्रदान करता है। ifstream, ofstream तथा fstream Classes की सहायता से File को आसानी से Open, Read, Write तथा Close किया जा सकता है। File Modes, Random File Access तथा EOF Handling जैसी सुविधाएँ File Processing को अधिक प्रभावी एवं Flexible बनाती हैं। Student Management Systems, Banking Software, Hospital Management, Billing Systems, Log Management तथा Report Generation जैसी वास्तविक Applications में File Handling का व्यापक उपयोग किया जाता है। RGPV B.Tech First Year के विद्यार्थियों के लिए यह Topic Theory, Practical तथा Viva तीनों दृष्टिकोण से अत्यंत महत्वपूर्ण है।
Related Articles
Manipulators in C++ Notes | endl, setw(), setprecision(), setfill(), fixed & scientific | Basic Computer Engineering | RGPV BTech First Year
0...
Read More →Standard Template Library (STL) in C++ Notes | Containers, Iterators & Algorithms | Basic Computer Engineering | RGPV BTech First Year
Standar...
Read More →Exception Handling in C++ Notes | try, throw, catch & Exception Handling Mechanism | Basic Computer Engineering | RGPV BTech First Year
Excepti...
Read More →Templates in C++ Notes | Function Templates, Class Templates & Generic Programming | Basic Computer Engineering | RGPV BTech First Year
Templat...
Read More →Virtual Functions in C++ Notes | Virtual Function, Pure Virtual Function & Dynamic Binding | Basic Computer Engineering | RGPV BTech First Year
Virtual...
Read More →