File Handling in C++ Notes | File Streams, ifstream, ofstream, fstream, Read & Write Files | Basic Computer Engineering | RGPV BTech First Year
File Handling in C++ Notes | File Streams, ifstream, ofstream, fstream, Read & Write Files | Basic Computer Engineering | RGPV BTech First Year
File Handling in C++
File Handling C++ Programming का एक अत्यंत महत्वपूर्ण Feature है जिसकी सहायता से Program का Data Permanent रूप से Computer की Secondary Storage में Store किया जा सकता है। सामान्यतः Program के Execute होने तक Data Memory (RAM) में रहता है, लेकिन Program समाप्त होने के बाद वह Data नष्ट हो जाता है। File Handling इस समस्या का समाधान प्रदान करती है।
C++ में File Handling के लिए मुख्य रूप से ifstream, ofstream तथा fstream Classes का उपयोग किया जाता है। इन Classes की सहायता से File Create करना, Open करना, Read करना, Write करना तथा Close करना संभव होता है।
RGPV B.Tech First Year के Basic Computer Engineering Subject में File Handling in C++ अत्यंत महत्वपूर्ण Topic है। University Examination, Practical तथा Viva में File Streams, ifstream, ofstream, fstream, File Modes तथा File Read/Write Programs से संबंधित प्रश्न नियमित रूप से पूछे जाते हैं।
↓
File Stream
↓
Read / Write
↓
File
↓
Permanent Storage
Introduction to File Handling
किसी भी Software Application में Data को भविष्य के लिए सुरक्षित रखना आवश्यक होता है। उदाहरण के लिए Student Records, Employee Information, Banking Transactions तथा Hospital Reports जैसी जानकारी Program बंद होने के बाद भी उपलब्ध रहनी चाहिए। ऐसे Permanent Data Storage के लिए File Handling का उपयोग किया जाता है।
File Handling Programmer को Computer की Disk पर स्थित Files के साथ कार्य करने की सुविधा प्रदान करती है। इसके माध्यम से Data को Store, Retrieve, Update तथा Delete किया जा सकता है।
What is a File?
File Computer की Secondary Storage में स्थित Data का एक संग्रह (Collection) होता है। File में Text, Numbers, Images, Binary Data अथवा किसी भी प्रकार की Information Store की जा सकती है।
ऊपर दिए गए सभी उदाहरण Computer System में उपलब्ध विभिन्न प्रकार की Files को दर्शाते हैं।
What is File Handling?
File Handling वह प्रक्रिया है जिसमें Program द्वारा File को Create, Open, Read, Write, Update तथा Close किया जाता है। C++ में यह कार्य File Stream Classes की सहायता से किया जाता है।
File Handling की सहायता से Program के समाप्त होने के बाद भी Data सुरक्षित रहता है तथा आवश्यकता पड़ने पर पुनः उपयोग किया जा सकता है।
Need of File Handling
यदि Program का Data केवल RAM में रखा जाए, तो Program बंद होने पर Data नष्ट हो जाएगा। इसलिए Permanent Storage तथा Large Amount of Data को Manage करने के लिए File Handling आवश्यक होती है।
- Data को Permanent रूप से Store करने के लिए।
- Program समाप्त होने के बाद भी Data सुरक्षित रखने के लिए।
- Large Amount of Information को Manage करने के लिए।
- Student, Employee तथा Customer Records Store करने के लिए।
- Reports तथा Documents Generate करने के लिए।
- Database एवं Business Applications विकसित करने के लिए।
- Professional Software Development के लिए।
Advantages of File Handling
| Advantage | Description |
|---|---|
| Permanent Storage | Data लंबे समय तक सुरक्षित रहता है। |
| Large Data Storage | बहुत अधिक मात्रा में Data Store किया जा सकता है। |
| Data Reusability | Stored Data को बार-बार उपयोग किया जा सकता है। |
| Easy Data Management | Records को Create, Update तथा Delete करना आसान होता है। |
| Business Applications | Banking, Hospital, School तथा Office Software में व्यापक उपयोग। |
Characteristics of File Handling
File Handling की कई महत्वपूर्ण विशेषताएँ (Characteristics) हैं जो Program को Permanent Data Storage की सुविधा प्रदान करती हैं। इसकी सहायता से Data को सुरक्षित रखा जा सकता है तथा आवश्यकता पड़ने पर पुनः प्राप्त किया जा सकता है।
- Data को Permanent रूप से Store किया जा सकता है।
- Program समाप्त होने के बाद भी Data सुरक्षित रहता है।
- Large Amount of Information को Manage किया जा सकता है।
- Data को Read तथा Write दोनों किया जा सकता है।
- Text तथा Binary दोनों प्रकार की Files को Handle किया जा सकता है।
- Professional Software Development में व्यापक उपयोग होता है।
- Business Applications के लिए अत्यंत उपयोगी है।
File Stream Classes
C++ में File Handling के लिए <fstream> Header File का उपयोग किया जाता है। इस Header File में तीन प्रमुख File Stream Classes उपलब्ध होती हैं जिनकी सहायता से File Operations किए जाते हैं।
| Class | Purpose |
|---|---|
| ifstream | File से Data Read करने के लिए। |
| ofstream | File में Data Write करने के लिए। |
| fstream | File को Read एवं Write दोनों करने के लिए। |
ifstream Class
ifstream (Input File Stream) का उपयोग File से Data Read करने के लिए किया जाता है। यह केवल Input Operations को Support करती है।
यदि Program को केवल File का Data पढ़ना हो, तो ifstream सबसे उपयुक्त Class होती है।
ofstream Class
ofstream (Output File Stream) का उपयोग File में Data Write करने के लिए किया जाता है। यदि File पहले से उपलब्ध नहीं होती, तो नई File Create भी की जा सकती है।
इस Class का उपयोग Reports, Student Records तथा Log Files Generate करने के लिए किया जाता है।
fstream Class
fstream Class का उपयोग तब किया जाता है जब Program को एक ही File पर Read तथा Write दोनों Operations करने हों। यह Input तथा Output दोनों प्रकार की सुविधाएँ प्रदान करती है।
Large Business Applications में सामान्यतः fstream Class का उपयोग किया जाता है क्योंकि यह अधिक Flexible होती है।
Comparison of File Stream Classes
| Class | Read | Write |
|---|---|---|
| ifstream | Yes | No |
| ofstream | No | Yes |
| fstream | Yes | Yes |
Opening a File
किसी File पर कोई भी Operation करने से पहले उसे Open करना आवश्यक होता है। C++ में File को दो तरीकों से Open किया जा सकता है—पहला Object Create करते समय तथा दूसरा open() Member Function का उपयोग करके।
यदि File सफलतापूर्वक Open हो जाती है, तो Program उस पर Read अथवा Write Operations कर सकता है।
Closing a File
जब File पर सभी Operations पूर्ण हो जाएँ, तब उसे close() Function द्वारा बंद (Close) करना आवश्यक होता है। इससे File से जुड़े Resources Release हो जाते हैं तथा Data सुरक्षित रूप से Store हो जाता है।
File को Close करना एक अच्छी Programming Practice मानी जाती है क्योंकि इससे Memory तथा System Resources मुक्त हो जाते हैं।
Writing Data into a File
ofstream अथवा fstream Class का उपयोग करके File में Data Write किया जाता है। इसके लिए सामान्य Output Operator << का उपयोग किया जाता है।
ऊपर दिए गए Program में student.txt नाम की File में My Project HD Text Store किया गया है।
Reading Data from a File
File में पहले से उपलब्ध Data को पढ़ने के लिए ifstream अथवा fstream Class का उपयोग किया जाता है। इसके लिए सामान्य Input Operator >> का उपयोग किया जाता है।
यदि File में MyProjectHD लिखा है, तो Program उसी Data को Read करके Screen पर Display करेगा।
Basic File Handling Program
Output
इस Program में नई File Create की गई है तथा उसमें एक String Successfully Write की गई है।
Working of File Handling
↓
Open File
↓
Read / Write Data
↓
Save Changes
↓
Close File
File Handling में सामान्यतः यही क्रम अपनाया जाता है। पहले File Open की जाती है, फिर आवश्यक Read अथवा Write Operations किए जाते हैं और अंत में File को Close कर दिया जाता है।
File Opening Modes
C++ में File को विभिन्न Modes में Open किया जा सकता है। प्रत्येक Mode का अपना अलग उद्देश्य होता है। File Mode यह निर्धारित करता है कि File केवल Read होगी, केवल Write होगी अथवा Read एवं Write दोनों Operations के लिए उपलब्ध होगी।
| File Mode | Description |
|---|---|
| ios::in | File को केवल Read Mode में Open करता है। |
| ios::out | File को केवल Write Mode में Open करता है। |
| ios::app | नया Data File के अंत (End) में जोड़ता है। |
| ios::ate | File Open होने के बाद Pointer को File के अंत में ले जाता है। |
| ios::trunc | File का पुराना Data हटाकर नई File तैयार करता है। |
| ios::binary | File को Binary Mode में Open करता है। |
Example of File Mode
ऊपर दिए गए उदाहरण में File Append Mode में Open की गई है, इसलिए नया Data File के अंत में Add होगा तथा पुराना Data सुरक्षित रहेगा।
Text File and Binary File
C++ में मुख्य रूप से दो प्रकार की Files का उपयोग किया जाता है — Text File तथा Binary File। Text File में Data Characters के रूप में Store होता है जबकि Binary File में Data Binary Format में Store किया जाता है।
| Text File | Binary File |
|---|---|
| Characters के रूप में Data Store होता है। | Binary Format में Data Store होता है। |
| Human Readable होती है। | Human Readable नहीं होती। |
| Debug करना आसान होता है। | Debug करना कठिन होता है। |
| Storage अपेक्षाकृत अधिक लेती है। | Storage कम लेती है। |
| Text Documents के लिए उपयोगी। | Images, Audio, Video एवं Executable Files के लिए उपयोगी। |
Random File Access
कई बार File को प्रारंभ से अंत तक पढ़ने की आवश्यकता नहीं होती। ऐसी स्थिति में File Pointer को किसी विशेष Position पर ले जाकर Data Read अथवा Write किया जाता है। इसे Random File Access कहा जाता है।
| Function | Purpose |
|---|---|
| seekg() | Read Pointer को Move करता है। |
| seekp() | Write Pointer को Move करता है। |
| tellg() | Read Pointer की Current Position बताता है। |
| tellp() | Write Pointer की Current Position बताता है। |
Example of Random File Access
ऊपर दिए गए उदाहरण में Read Pointer File के 10वें Byte पर पहुँच जाता है, जहाँ से आगे का Data Read किया जा सकता है।
Advantages of File Modes and Random Access
- File को आवश्यकता अनुसार विभिन्न Modes में Open किया जा सकता है।
- Existing Data को सुरक्षित रखते हुए नया Data जोड़ा जा सकता है।
- Large Files में किसी भी Position से Data Access किया जा सकता है।
- File Processing अधिक Efficient हो जाती है।
- Database एवं Record Management Applications के लिए अत्यंत उपयोगी है।
- Execution Time में कमी आती है क्योंकि पूरी File पढ़ने की आवश्यकता नहीं होती।
End of File (EOF) Handling
जब Program File को Read करता है, तब एक समय ऐसा आता है जब File का पूरा Data समाप्त हो जाता है। इस स्थिति को End of File (EOF) कहा जाता है। C++ में eof() Function का उपयोग यह जाँचने के लिए किया जाता है कि File का अंत आ चुका है या नहीं।
ऊपर दिए गए उदाहरण में Program तब तक Data Read करता रहेगा जब तक File का अंत (EOF) नहीं आ जाता।
Complete File Read and Write Program
Output
इस Program में पहले File में Data Write किया गया है तथा उसके बाद उसी File से Data Read करके Screen पर Display किया गया है।
Applications of File Handling
File Handling का उपयोग लगभग प्रत्येक Software Application में किया जाता है जहाँ Data को लंबे समय तक सुरक्षित रखना आवश्यक होता है।
| Application | Purpose |
|---|---|
| Student Management System | Student Records Store एवं Update करना। |
| Banking Software | Customer एवं Transaction Details सुरक्षित रखना। |
| Hospital Management | Patient Records एवं Medical Reports Store करना। |
| Payroll System | Employee Salary एवं Attendance Records Maintain करना। |
| Library Management | Books तथा Members की Information Store करना। |
| Inventory Management | Products एवं Stock Details Maintain करना। |
Advantages of File Handling
- Data Permanent रूप से सुरक्षित रहता है।
- Large Amount of Information को आसानी से Store किया जा सकता है।
- Program बंद होने के बाद भी Data उपलब्ध रहता है।
- Data को Read, Write, Update तथा Delete किया जा सकता है।
- Database तथा Business Applications के लिए अत्यंत उपयोगी है।
- Records को व्यवस्थित (Organized) तरीके से Manage किया जा सकता है।
- Program की Reliability एवं Usability बढ़ती है।
Limitations of File Handling
- गलत File Path देने पर File Open नहीं होगी।
- File Corruption होने पर Data Loss हो सकता है।
- Large Files को Process करने में अधिक समय लग सकता है।
- Improper File Closing से Data Loss की संभावना रहती है।
- Security न होने पर Unauthorized Access संभव है।
- Binary Files को Debug करना अपेक्षाकृत कठिन होता है।
Summary
File Handling C++ का एक महत्वपूर्ण Feature है जिसकी सहायता से Program का Data Permanent रूप से Secondary Storage में Store किया जा सकता है। C++ में File Handling के लिए मुख्य रूप से ifstream, ofstream तथा fstream Classes का उपयोग किया जाता है। इनकी सहायता से File को Create, Open, Read, Write, Update तथा Close किया जा सकता है। File Modes, Random File Access तथा EOF Handling जैसे Features Large Software Applications में Data Management को सरल एवं प्रभावी बनाते हैं।
| Concept | Description |
|---|---|
| File | Secondary Storage में स्थित Permanent Data का संग्रह। |
| File Handling | File को Create, Read, Write, Update एवं Close करने की प्रक्रिया। |
| ifstream | File से Data Read करने के लिए। |
| ofstream | File में Data Write करने के लिए। |
| fstream | Read एवं Write दोनों Operations के लिए। |
| File Modes | ios::in, ios::out, ios::app, ios::binary आदि। |
| Random Access | seekg(), seekp(), tellg(), tellp() द्वारा File Pointer नियंत्रित करना। |
| EOF | File के अंत (End of File) की स्थिति। |
Important Viva Questions
- File क्या है?
- File Handling क्या है?
- ifstream क्या है?
- ofstream क्या है?
- fstream क्या है?
- Text File एवं Binary File में क्या अंतर है?
- File Modes क्या हैं?
- Random File Access क्या है?
- seekg() तथा seekp() Functions का क्या उपयोग है?
- EOF (End of File) क्या होता है?
University Examination Important Questions
- File Handling क्या है? इसकी आवश्यकता एवं Advantages लिखिए।
- ifstream, ofstream तथा fstream Classes को उदाहरण सहित समझाइए।
- File को Open एवं Close करने की प्रक्रिया समझाइए।
- File में Data Read एवं Write करने का Program लिखिए।
- Text File तथा Binary File में अंतर लिखिए।
- File Modes को उदाहरण सहित समझाइए।
- Random File Access क्या है? seekg(), seekp(), tellg() तथा tellp() Functions को समझाइए।
- EOF Handling क्या है? उदाहरण सहित समझाइए।
- File Handling के Applications, Advantages एवं Limitations लिखिए।
- C++ में Complete File Handling Program उदाहरण सहित लिखिए।
Exam Tips
- हमेशा याद रखें कि ifstream केवल Read Operation के लिए उपयोग होती है।
- ofstream केवल Write Operation के लिए उपयोग होती है।
- fstream Read तथा Write दोनों Operations को Support करती है।
- ios::app Mode नया Data File के अंत में जोड़ता है।
- seekg() Read Pointer तथा seekp() Write Pointer को Move करते हैं।
- tellg() एवं tellp() वर्तमान Pointer Position Return करते हैं।
- RGPV Exam में File Read/Write Program, File Modes तथा Text vs Binary File पर प्रश्न अक्सर पूछे जाते हैं।
Conclusion
File Handling in C++ आधुनिक Software Development का एक अत्यंत महत्वपूर्ण भाग है जो Data को Permanent रूप से Store एवं Manage करने की सुविधा प्रदान करता है। ifstream, ofstream तथा fstream Classes की सहायता से File Operations को सरल एवं प्रभावी ढंग से किया जा सकता है। File Modes, Random File Access तथा EOF Handling जैसी सुविधाएँ Large Scale Applications में Efficient Data Processing सुनिश्चित करती हैं। Banking Software, Student Management System, Hospital Management, Payroll System तथा Inventory Management जैसे अनेक 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 →