Listing 5
using namespace System;
using namespace System::IO;
int main()
{
/*1*/ Stream^ fs = gcnew FileStream("Io05.dat",
FileMode::Create, FileAccess::ReadWrite);
BinaryWriter^ bw = gcnew BinaryWriter(fs);
BinaryReader^ br = gcnew BinaryReader(fs);
/*2*/ Console::WriteLine("CanRead is {0}, CanWrite is {1}, CanSeek is {2}",
fs->CanRead, fs->CanWrite, fs->CanSeek);
/*3*/ Console::WriteLine("Position at start is {0}", fs->Position);
bw->Write(true);
/*4*/ long long pos1 = fs->Position;
bw->Write(1234);
bw->Write(123.456);
Console::WriteLine("Position at end is {0}", fs->Position);
/*5*/ fs->Position = pos1;
bw->Write(5678); // overwrite 1234 with 5678
/*6*/ fs->Position = 0;
bw->Write(false); // overwrite true with false
/*7*/ fs->Seek(0, SeekOrigin::Begin);
Console::WriteLine("bool: " + br->ReadBoolean());
/*8*/ fs->Seek(-1, SeekOrigin::Current);
Console::WriteLine("bool: " + br->ReadBoolean());
Console::WriteLine("int: " + br->ReadInt32());
/*9*/ fs->Seek(-8, SeekOrigin::End);
Console::WriteLine("double: " + br->ReadDouble());
bw->Close();
br->Close();
fs->Close();
}