Mega Code Archive

 
Categories / Visual C++ .NET / File Directory
 

Binary read and write with BinaryWriter and BinaryReader

#include "stdafx.h" using namespace System; using namespace System::IO; ref class Role {     String ^Name;     Int32   Strength;     Boolean IsMale;     DateTime CreateDate; public:     Role();     Role (String ^Name, int Str, bool IsMale);     void Print();     void Save(String ^fname);     void Load(String ^fname); }; Role::Role() { } Role::Role (String ^Name, int Str, bool IsMale) {     this->Name     = Name;     this->Strength = Str;     this->IsMale   = IsMale;     this->CreateDate = DateTime::Now; } void Role::Print() {     Console::WriteLine("Name: {0} ({1})", Name, (IsMale ? "M" : "F"));     Console::WriteLine("Str:  {0}", Strength);     Console::WriteLine("Date: {0}", CreateDate.ToString()); } void Role::Save(String ^fname) {     FileStream   ^fs = File::OpenWrite(fname);     BinaryWriter ^bw = gcnew BinaryWriter(fs);     bw->Write(Name);     bw->Write(Strength);     bw->Write(IsMale);     bw->Write(CreateDate.Ticks);       bw->Close();     fs->Close(); } void Role::Load(String ^fname) {     FileStream   ^fs = File::OpenRead(fname);     BinaryReader ^br = gcnew BinaryReader(fs);     Name     = br->ReadString();     Strength = br->ReadInt32();     IsMale   = br->ReadBoolean();     CreateDate = DateTime( br->ReadInt64() );     br->Close();     fs->Close(); } void main(){     Role ^r = gcnew Role("r", 10, true);     r->Save("Role.dat");     Console::WriteLine("Original r");     r->Print();     Role ^rClone = gcnew Role();     rClone->Load("Role.dat");     Console::WriteLine("\nCloned r");     rClone->Print(); }