我想從二進制文件中讀取一個Unicode記錄並存儲在對象中,但緩衝區的最後一個字節不保存,爲什麼?從文件讀取記錄
b = new byte[55];
file.read(b, 0, b.length)
set(b);
private static int sizePtr = 4;
private static int sizeBf = 50;
private byte deleteTag ;
private byte []buf = new byte[sizeBf];
private byte []pointer = new byte[sizePtr];
public void set(byte[] b)
{
deleteTag = b[0];
Int32 l;
for (l = 0; l < sizeOfBuffer(); l++)
buf[l] = b[l+1];
for (int i = 0; i < sizePtr; i++, l++)
pointer[i] = b[l];
}
向我們展示'sizeOfBuffer()'的定義。另外,任何你不僅僅使用'Array.Copy()'而不是滾動你自己的字節複製循環的理由?這看起來像是一種非常類似於C的方式,可以通過使用C#習語和庫函數來大大簡化。 – siride
關於'buf [l] = b [l + 1];' - 爲什麼要跳過'b'的第一個條目? – Codor
@Codor可能是因爲b [0]是deleteTag,我也猜測'sizeOfBuffer()= sizeBf'和55是由1 + 50 + 4構成的。 –