私のプロジェクトでは、ファイルから UInt16、UInt32、Bytes、および Strings を書き込む必要があります。次のように書いた単純なクラスから始めました。
public FileReader(string path) //constructor
{
if (!System.IO.File.Exists(path))
throw new Exception("FileReader::File not found.");
m_byteFile = System.IO.File.ReadAllBytes(path);
m_readPos = 0;
}
public UInt16 getU16() // basic function for reading
{
if (m_readPos + 1 >= m_byteFile.Length)
return 0;
UInt16 ret = (UInt16)((m_byteFile[m_readPos + 0])
+ (m_byteFile[m_readPos + 1] << 8));
m_readPos += 2;
return ret;
}
既存の BinaryReader を使用する方が良いかもしれないと思ったので試してみましたが、私のアプローチよりも遅いことに気付きました。誰かがこれがなぜなのかを説明できますか?また、ファイルをロードしてそこから読み取るために使用できる別の既存のクラスがある場合は?
~Adura