Unit-3
Unit-3
Generally, the file is used to store the data. The term File Handling refers to the
various operations like creating the file, reading from the file, writing to the file,
appending the file, etc. There are two basic operations which is mostly used in
file handling is reading and writing of the file. The file becomes stream when we
open the file for writing and reading. A stream is a sequence of bytes which is
used for communication. Two stream can be formed from file one is input stream
which is used to read the file and another is output stream is used to write in the
file. In C#, System.IO namespace contains classes which handle input and output
streams and provide information about file and directory structure.
StreamWriter Class
The StreamWriter class implements TextWriter for writing character to stream
in a particular format. The class contains the following method which are
mostly used.
Method Description
Close() -Closes the current StreamWriter object and stream associate
with it.
Flush()-Clears all the data from the buffer and write it in the stream
associate with it.
Write()-Write data to the stream. It has different overloads for different
data types to write in stream.
WriteLine()-It is same as Write() but it adds the newline character at the
end of the data.
Eg: - // C# program to write user input
// to a file using StreamWriter Class
using System;
using System.IO;
namespace GeeksforGeeks {
class GFG {
class WriteToFile
{
public void Data()
{
// This will create a file named sample.txt
// at the specified location
StreamWriter sw = new StreamWriter("H://week.txt");
// To write on the console screen
Console.WriteLine("Enter the Text that you want to write on File");
// To read the input from the user
string str = Console.ReadLine();
// To write a line in buffer
sw.WriteLine(str);
// To write in output stream
sw.Flush();
// To close the stream
sw.Close();
}
}
// Main Method
static void Main(string[] args)
{
WriteToFile wr = new WriteToFile();
wr.Data();
Console.ReadKey();
}
}
}
StreamReader Class
The StreamReader class implements TextReader for reading character from the
stream in a particular format. The class contains the following method which are
mostly used.
Method Description
Close() -Closes the current StreamReader object and stream
associate with it.
Peek()-Returns the next available character but does not consume it.
Read()-Reads the next character in input stream and increment characters
position by one in the stream
ReadLine()-Reads a line from the input stream and return the data in
form of string
Seek()-It is use to read/write at the specific location from a file
Eg: - // C# program to read from a file
// using StreamReader Class
using System;
using System.IO;
namespace GeeksforGeeks {
class GFG {
class ReadFile {
public void DataReading()
{
// Takinga a new input stream i.e.
// geeksforgeeks.txt and opens it
StreamReader sr = new StreamReader("H://week.txt");
Multithreading is used to perform multiple tasks. Each task can have multiple
threads. In a multithreaded application, the user can do more in a short span of
time than a single thread application. Today, almost every application uses
multiple threading. An application or a process can have a user interface thread
that manages interactions with the user and background worker threads that
perform other tasks.
t1.Start();
t2.Start();
t3.Start();
Console.ReadKey();
}
}
public class BookMyShow
{
private object lockObject = new object();
int AvailableTickets = 3;
static int i = 1, j = 2, k = 3;
public void BookTicket(string name, int wantedtickets)
{
lock(lockObject)
{
if (wantedtickets <= AvailableTickets)
{
Console.WriteLine(wantedtickets + " booked to " + name);
AvailableTickets = AvailableTickets - wantedtickets;
}
else
{
Console.WriteLine("No tickets Available to book");
}
}
}
public void TicketBookig()
{
string name = Thread.CurrentThread.Name;
if (name.Equals("Thread1"))
{
BookTicket(name, i);
}
else if (name.Equals("Thread2"))
{
BookTicket(name, j);
}
else
{
BookTicket(name, k);
}
}
}
}