난 같은 MemoryStream을 뒷받침하는 binarywriter이액세스베이스 MemoryStream을 binarywriter에서 [읽기]
long DataLength = m_binaryWriter.BaseStream.Length;
byte[] MemoryStrData = new byte[DataLength];
int BytesRead = m_binaryWriter.BaseStream.Read(MemoryStrData, 0, (int)DataLength);
그러나 BytesRead는 항상 0입니다 (분명히 MemoryStrData는 모두 0을 포함합니다). BinaryReader를 사용하여 스트림을 기본 스트림에서 읽으려고했지만 동일한 결과가 발생했습니다. 내가 여기서 뭔가를 놓치고 있니?
을 : 당신이해야 할 basestream에 대한 핸들을 얻는 다음 .read (OutputArray, 색인, 카운트) 충분할 것이다을하고 있지만, 상기 BinaryWriter 자체에 추구 생각 'BinaryReader'가 아니라'BinaryWriter'가 아니라 ..? –
예, 바이너리 기록기에 데이터를 쓰고 있지만 연속 블록 (일단 BUFFER_SIZE를 지나면)에 대한 액세스를 원합니다. – bge0
'Stream'에서 파생 된 커스텀 클래스를 구현하는 것이 더 나을지도 모르며 클래스의 내부에서 이상한 버퍼링/부분 커밋/로깅 (스트림에서 임의 블록을 읽은 후에 무엇이든간에)을 구현하는 것이 더 좋습니다. –