27
FILE HANDLING IN C++ Presented to:- mrs. sonymol koshy By:- papu kumar Section:- b Roll no.:- 2061424(47) Semester:- iii

File Handling In C++(OOPs))

Embed Size (px)

Citation preview

Page 1: File Handling In C++(OOPs))

FILE HANDLING IN C++

Presented to:- mrs. sonymol koshyBy:- papu kumarSection:- bRoll no.:- 2061424(47)Semester:- iii

Page 2: File Handling In C++(OOPs))

CONTENTS OUTLINE Data File Handling:

Need for a data file, Types of data files – Text file and Binary file;

Text File: Basic file operations on text file:

Creating/Writing text into file, Reading and manipulation of text from an already existing text File (accessing sequentially);

Binary File: Creation of file, Writing data into file, Searching for required data from file, Appending data to a file, Insertion of data in sorted file, Deletion of data from file, Modification of data in a file;

Implementation of above mentioned data file handling in C++; Components of C++ to be used with file handling:

Page 3: File Handling In C++(OOPs))

CONTENTS OUTLINE Header file:

fstream.h; ifstream, ofstream, fstream classes; Opening a text file in in, out, and app modes; open(), get(), put(), getline() and close() functions; Detecting end-of-file (with or without using eof() function); Opening a binary file using in, out, and app modes; open(), read(), write() and close() functions;

Page 4: File Handling In C++(OOPs))

All programs we looked earlier:

Introduction

input data from the keyboard.

output data to the screen. Difficult to handle large amount of input data. Output would also be lost as soon as we exit from the program. How do we store data permanently?.

We can use secondary storage device. Data is packaged up on the storage device as data structures called files.

Page 5: File Handling In C++(OOPs))

Files (Streams)

Files are used to store data in a relatively permanent form, on floppy disk, hard disk, tape or other form of secondary storage. Files can hold huge amounts of data if need be. Ordinary variables (even records and arrays) are kept in main memory which is temporary and rather limited in size.

Lets put it in points…………..

Page 6: File Handling In C++(OOPs))

Why use files?• Convenient way to deal with large quantities of data. • Store data permanently (until file is deleted). • Avoid having to type data into program multiple times. • Share data between programs.

Page 7: File Handling In C++(OOPs))

The following is a comparison

of the two types of storage………..

Page 8: File Handling In C++(OOPs))

Main memory

Made up of RAM chips. Used to hold a

program when it is running, including the values of its variables (whether integer, char, an array, etc.)

Secondary memory

Usually a disk drive (or magnetic tape).

Used to hold files (where a file can contain data, a program, text, etc.)

Can hold rather large amounts of data.

Page 9: File Handling In C++(OOPs))

Main memory

Can only hold relatively small amounts of data.

Is temporary (as soon as the program is done or the power goes out all of these values are gone).

Gives fast access to the data (all electronic).

Secondary memory

Can hold rather large amounts of data. Is fairly permanent. (A file remains

even if the power goes out. It will last until you erase it, as long as the disk isn't damaged, at least.)

Access to the data is considerably slower (due to moving parts).

Page 10: File Handling In C++(OOPs))

I/O in C++

I/O in C++ uses streams A Stream is a general name given to

flow of data.

Page 11: File Handling In C++(OOPs))

Flow of Data….

PROGRAM

DEVICES OR

FILES

InputStream

>>

OutputStream

<<

Data

Data

istream class ostream class

(Insertion operator)

(Extraction operator)

Page 12: File Handling In C++(OOPs))

More About Files…..

Now we need to know: how to "connect" file to program how to tell the program to read data how to tell the program to write data error checking and handling eof

Page 13: File Handling In C++(OOPs))

I/O in C++

Different streams are used to represent different kinds of data flow.

Each stream is associated with a particular class, which contains

member functions and definitions for dealing with that particular kind of

data flow.

Page 14: File Handling In C++(OOPs))

The following classes in C++ have access to file input and output functions:

ifstream ofstream fstream

File Related Classes

Page 15: File Handling In C++(OOPs))

The Stream Class Hierarchy

ios

istreamget()getline()read()>>

ostreamput()write()<<

fstreambase

iostream

IfstreamOpen()Tellg()Seekg()

OfstreamOpen()Tellp()Seekp()

fstream

NOTE : UPWARD ARROWS INDICATETHE BASE CLASS

Page 16: File Handling In C++(OOPs))

OPENING A FILE

1. By using the CONSTRUCTOR of the stream class.ifstream transaction(“sales.dly”);ofstream result(“result.02”);

2. By using the open() function of the stream class ifstream transaction;

transaction.open(“sales.dly”);

(Associating a stream with a file)

Page 17: File Handling In C++(OOPs))

File Mode Parameters

PARAMETER MEANING ios::app Append to end-of file ios::ate goto end of file on opening ios::binary binary file ios::in Open existing file for reading ios::nocreate open fails if file doesn’t exist ios::noreplace open fails if file already exists ios::out creates new file for writing on ios::trunc Deletes contents if it exists

The mode can combine two or more modes using bit wise or ( | )

Page 18: File Handling In C++(OOPs))

Checking For Successful File Opening

ifstream transaction(“sales.dly”);if (transaction == NULL){

cout<<“unable to open sales.dly”;cin.get(); // waits for the operator to press any keyexit(1);

}

Page 19: File Handling In C++(OOPs))

Closing of File

Stream_name.close();e.g., transaction.close();

fl.close();

Note : There is no need to give the physical file name at the time of closing a file.

Page 20: File Handling In C++(OOPs))

Types of Files

The two basic types of files are Text files & Binary files

Page 21: File Handling In C++(OOPs))

Text Files A text file consists of readable characters separated into lines by

newline characters. (On most PCs, the newline character is actually represented by

the two-character sequence of carriage return (ASCII 13), line feed (ASCII 10). (\n)

Page 22: File Handling In C++(OOPs))

A binary file stores data to disk in the same form in which it is represented in main memory.

If you ever try to edit a binary file containing numbers you will see that the numbers appear as nonsense characters.

Binary Files

Page 23: File Handling In C++(OOPs))

Not having to translate numbers into a readable form makes binary files somewhat more efficient.

Binary files also do not normally use anything to separate the data into lines.

Such a file is just a stream of data with nothing in particular to separate components.

Binary Files

Page 24: File Handling In C++(OOPs))

When using a binary file we write whole record data to the file at once.

but the numbers in the binary file will not be readable in this way.

When using a text file, we write out separately each of the pieces of data about a given record.

The text file will be readable by an editor

Text Files Binary Files

Page 25: File Handling In C++(OOPs))

for the text file we will use the usual output operator(<<) and will output each of the pieces of the record separately.

with the text file we will read each of the pieces of record from the file separately, using the usual input operator(>>)

For the binary file we will use write to write to the file,

With the binary file we will use the read function to read a whole record,

The programs to create the data files will differ in how they open the file and in how they write to the file.

Page 26: File Handling In C++(OOPs))

:Sequential access. With this type of file access one must read the data in order, much like with a tape, whether the data is really stored on tape or not. Random access (or direct access). This type of file access lets you jump to any location in the file, then to any other, etc., all in a reasonable amount of time.

Types of File Access

Page 27: File Handling In C++(OOPs))

The End