/*
* C# Programmers Pocket Consultant
* Author: Gregory S. MacBeth
* Email: gmacbeth@comporium.net
* Create Date: June 27, 2003
* Last Modified Date:
* Version: 1
*/
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace Client.Chapter_11___File_and_Streams
{
public class Class1Chapter_11___File_and_Streams {
[STAThread]
static void Main(string[] args)
{
Point p1 = new Point();
p1.xpoint = 0x1111;
p1.ypoint = 0x2222;
// Opens a file and serializes the object into it.
Stream stream = File.Open("onepoint.bin", FileMode.Create);
BinaryFormatter bformatter = new BinaryFormatter();
bformatter.Serialize(stream, p1);
stream.Close();
//Read the data from a file and desiralize it
Stream openStream = File.Open("onepoint.bin", FileMode.Open);
Point desierializedPoint = new Point();
desierializedPoint = (Point)bformatter.Deserialize(openStream);
}
}
[Serializable()]
class Point
{
public int xpoint;
public int ypoint;
}
}
File Stream
File pointer move and read binary file
using System;
using System.IO;
using System.Text;
class Class1{
static void Main(string[] args) {
byte[] byData = new byte[100];
char[] charData = new Char[100];
try {
FileStream aFile = new FileStream("practice.txt",FileMode.Open);
aFile.Seek(55,SeekOrigin.Begin);
aFile.Read(byData,0,100);
}
catch(IOException e)
{
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(e.ToString());
Console.ReadLine();
return;
}
Decoder d = Encoding.UTF8.GetDecoder();
d.GetChars(byData, 0, byData.Length, charData, 0);
Console.WriteLine(charData);
return;
}
}
Working with the BinaryReader Class
using System;
using System.IO;
class MainClass {
static public void Main() {
FileStream BinaryFile = new FileStream("test.dat", FileMode.Create, FileAccess.ReadWrite);
BinaryReader Reader = new BinaryReader(BinaryFile);
BinaryWriter Writer = new BinaryWriter(BinaryFile);
Writer.Write('a');
Writer.Write(123);
Writer.Write(456.789);
Writer.Write("test string");
char ReadCharacter;
double ReadDouble;
int ReadInteger;
string ReadString;
BinaryFile.Seek(0, SeekOrigin.Begin);
ReadCharacter = Reader.ReadChar();
ReadInteger = Reader.ReadInt32();
ReadDouble = Reader.ReadDouble();
ReadString = Reader.ReadString();
Console.WriteLine("Character: {0}", ReadCharacter);
Console.WriteLine("Integer: {0}", ReadInteger);
Console.WriteLine("Double: {0}", ReadDouble);
Console.WriteLine("String: {0}", ReadString);
}
}
Working with the BinaryWriter Class
using System;
using System.IO;
class MainClass
{
static public void Main()
{
FileStream BinaryFile = new FileStream("test.dat", FileMode.Create, FileAccess.ReadWrite);
BinaryWriter Writer = new BinaryWriter(BinaryFile);
Writer.Write('a');
Writer.Write(123);
Writer.Write(456.789);
Writer.Write("test string");
}
}