DATA FILE HANDLING

22
DATA FILE HANDLING

description

DATA FILE HANDLING. Contents to be covered in class. Concept of files & streams Stream class hierarchy File handling functions Text V/S Binary Data Files Opening & Closing Files File Modes Some Programming Examples Searching in Binary Files. FILE HANDLING IN C++. - PowerPoint PPT Presentation

Transcript of DATA FILE HANDLING

Page 1: DATA FILE HANDLING

DATA FILE HANDLING

Page 2: DATA FILE HANDLING

Contents to be covered in class Concept of files & streams Stream class hierarchy File handling functions Text V/S Binary Data Files Opening & Closing Files File Modes Some Programming Examples Searching in Binary Files

Page 3: DATA FILE HANDLING

FILE HANDLING IN C++

Most computer program work with files. This is because files helps in storing Data permanently.

A file is a collection of related data stored on a storage device.

In C++ file operations make use of streams whichprovides Interface between programs and the files.

Page 4: DATA FILE HANDLING

STREAM

A Stream is general name given to a flow of data.

Different streams are used to represent different kinds of data flow. Each stream is associated with particular Class.

Page 5: DATA FILE HANDLING

Input Stream

The stream that supplies data to the program is known as Input Stream. It reads data from file and hand over data to the program.

Page 6: DATA FILE HANDLING

Output Stream

The stream that receives data from the program is known as output Stream. It writes the received data to the file.

Page 7: DATA FILE HANDLING

Each stream is associated with a particular class.

CLASS PURPOSE

ifstream It is input file stream, it provides input operations for file.

ofstream It is output file stream, it provides output operations for file.

fstream It is input and output file stream. It provides support simultaneous Input and Output operations.

Page 8: DATA FILE HANDLING

TYPES OF FILES IN C++

• TEXT FILES

• BINARY FILES

Page 9: DATA FILE HANDLING

TEXT FILES

TEXT FILES : A text files stores data in ascii format. In text file each line is terminated with a special character known as EOL character. In text files some Internal translation takes place when this EOL characteris read and written.

Page 10: DATA FILE HANDLING

BINARY FILES

BINARY FILES : A binary file stores data in binary format and no delimiters is used for a line. Also no Translation occurs in binary files. As a result, binary files are faster and easier for a program to read and write than the text files.

Page 11: DATA FILE HANDLING

STEPS TO PROCESS A FILE

1. Determine the type of link required.2. Declare a stream for the desired types of link.3. Attach the desired file to the declared the stream.4. Processing a file.5. Close the file link with stream.

Page 12: DATA FILE HANDLING

Opening & Closing Files

Two Methods for opening files (i) Using Constructors (When Single file is to be used) Eg. ifstream ip_file(“xyz.dat”) – For reading from file ip_file>>ch; ofstream op_file(“pqr.dat”) – For writing to file op_file.put(ch); (ii) Using Open() function (For Multiple files)

ifstream fin; fin.open(“abc.dat”); fin.close(); fin.open(“xyz.dat”); --Multiple Files

fin.close();

Page 13: DATA FILE HANDLING

File Modes

These are used to access a file as required

Eg. Ios::in, ios::out, ios::ate, ios::app, ios::binary etc. Syntax: fout.open(“abc.dat”, ios::in)

To concatenate two or more modes: ios::app|ios::nocreate|ios::binary)

Page 14: DATA FILE HANDLING

iostream.h file

fstream.h file

IOS

ISTREAM

STREAMBUF

OSTREAM

IFSTREAM

IOSTREAM

FSTREAM

OFSTREAM

FSTREAMBASE

FILEBUF

Stream Class Hierarchy

Page 15: DATA FILE HANDLING

/* program to write data in a text file */#include<fstream.h>#include<conio.h>void main(){

char ans='y';char name[20],add[20];ofstream fout("student.dat");clrscr();while(ans=='y'){

cout<<"Enter name and address:"<<endl;cin>>name>>add;fout<<name<<add<<endl;cout<<"Do you want to add another

record:";cin>>ans;

}fout.close();

}

Page 16: DATA FILE HANDLING

/* program to read data from a file */#include<fstream.h>#include<conio.h>void main(){

char name[20],add[20];ifstream fin("student.dat");clrscr();while(1){

fin>>name>>add;cout<<name<<add<<endl;if(fin.eof())break;

}fin.close();

}

Page 17: DATA FILE HANDLING

/* program to write and read data from a file */#include<fstream.h>#include<conio.h>#include<string.h>void main(){

char string[80],ch;int len;fstream file;file.open(“string.dat”,ios::out| ios::in); clrscr();cout<<“Please enter the String:”;gets(string);len=strlen(string);// logic to write data in a filefor(int i=0,i<=len-1;i++){

file.put(string[i]);}

Page 18: DATA FILE HANDLING

// logic to read data from a file

file.seekg(0);while(1){

file.get(ch);if(file.eof())

break;

cout<<ch;

}file.close();getch();

}

Page 19: DATA FILE HANDLING

The read() & write() functions using structures#include<fstream.h>#include<conio.h>#include<string.h>struct customer{char name[]; float balance;};void main(){ clrscr();

customer c1;strcpy(c1.name, “Ajay Jain”);

c1.balance=50786.75;ofstream fout;fout.open(“account”,ios::out| ios::binary); if(!fout){ cout<<“\n File can’t be open”; return 1;}fout.write((char *) & c1, sizeof(customer));fout.close();ifstream fin;fin.open(“account”,ios::out| ios::binary);fin.read((char *) & c1, sizeof(customer));cout<<c1.name<<“ has the balance amount of Rs. ”<< c1.balance;fout.close();

}

Page 20: DATA FILE HANDLING

Reading & writing class objects#include<fstream.h>#include<conio.h>#include<string.h>class Student{ char name[10]; float marks; public: void getdata()

{char ch; cin.get(ch); cout<<“\n Enter name: ”; cin.getline(name, 40); cout<<“\n Marks: ” ; cin>>marks; cout<<endl;}

void display(){ cout<< name <<“\t”<<marks<<“\n”;}

};

Page 21: DATA FILE HANDLING

void main(){ clrscr();

Student S[2];fstream file;file.open(“student.dat”,ios::in| ios::out); if(!file){ cout<<“\n File can’t be open”; return 1;}cout<<“\n Enter details of students \n ”;for(int i=0;i<2;i++){ s[i].getdata();

file.write((char *) & S1[i], sizeof(S[i])); }file.seekg();cout<<“\n The contents of student.dat are : \n”;for(int i=0;i<2;i++){ file.read((char *) & S1[i], sizeof(S[i]));

s[i].display(); }fout.close();

}

Page 22: DATA FILE HANDLING

THANKS

&

HAVE A NICE DAY