using System;
using System.IO;
namespace ConsoleApplication_C_Sharp
{
public class myFile
{
Stream stream;
public myFile(string fileName)
{
stream = new FileStream(fileName, FileMode.Open);
}
public void Close()
{
stream.Close();
stream = null;
}
// Indexer to read/write from file
public byte this[long index]
{
// Read one byte from offset index
get
{
byte[] buffer = new byte[1];
stream.Seek(index, SeekOrigin.Begin);
stream.Read(buffer, 0, 1);
return buffer[0];
}
// Write one byte at offset index
set
{
byte[] buffer = new byte[1] { value };
stream.Seek(index, SeekOrigin.Begin);
stream.Write(buffer, 0, 1);
}
}
public long Length
{
get
{
return stream.Seek(0, SeekOrigin.End);
}
}
}
class Program
{
static void Main(string[] args)
{
myFile myfile = new myFile("d:\\test.txt");
Console.WriteLine("file length = {0}", myfile.Length);
Console.WriteLine("myfile[3] = {0}", myfile[3]);
Console.WriteLine("myfile[3] = {0}", myfile[12]);
myfile[3] = 97;
myfile[6] = 65;
myfile.Close();
}
}
}
/*
file before:
c# .net vb java
javascript php asp.net c
*/
/*
file after:
c#a.nAt vb java
javascript php asp.net c
*/
/*
run:
file length = 43
myfile[3] = 32
myfile[3] = 106
*/