/* * 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"); } }