>>382
dataLengthになるまで、reader.Read()を繰り返したら?
reader.Read()の戻り値をみて。
int readSize = 0;
int offset = 0;
while(dataLength) {
readSize = reader.Read(data, offset, dataLength);
offset += readSize;
dataLength -= readSize;
}