int32, int16, 단일 값을 포함하는 메모리 스트림을 만들고 싶습니다. binarywriter를 사용하여 쓸모가 없으므로 바이트 배열을 만들려고했습니다. 값이 다른 유형이므로 값을 올바르게 처리하는 방법을 알지 못합니다. 그래서 나는 그렇게 할 시도 :다른 유형의 데이터가있는 bytes 배열의 MemoryStream
byte[] tab = new byte[]{2,0,0,0,3,0,3,0}
- 다른 두 개의 3 INT16 (두 바이트)되어, 2 (4 바이트)이 int32되고 잘 작동하지만 난 어떤 하나의 값을 추가 할 때, 그것은 생성
오류. 나는 그렇게 할 캔트 :
byte[] tab = new byte[]{2,0,0,0,3,0,3,0,4.4f,5.6f}
은 그 스트림이 방법으로 읽을 수 있습니다 원인이 적절한 형식으로 스트림이 있어야합니다
short[] rawData;
float[] modulusData;
public void rawData(Stream s)
{
BinaryReader br = new BinaryReader(s);
int dataCount = br.ReadInt32();
if (dataCount > 0)
{
rawData = new short[dataCount];
for (int i = 0; i < dataCount; i++)
rawData[i] = br.ReadInt16();
}
else
rawData = new short[0];
dataCount = br.ReadInt32();
if (dataCount > 0)
{
modulusData = new float[dataCount];
for (int i = 0; i < dataCount; i++)
modulusData[i] = br.ReadSingle();
}
else
modulusData = new float[0];
}
누구 어떻게 그렇게 할 생각이있다?
당신이지고 어떤 오류 (다른 답변을 참조) 사용하여 읽기 같은 방법으로 스트림에 작성하는 것입니다? –
더 중요한 것은 - 이것은 무엇을하기로되어 있습니까? 형식에 대한 스펙이 있습니까? 현재 스트림에서 일부 숫자를 읽고 해당 정보를 사용하여 독자를 발전시키고 다음에 읽을 내용을 선택합니다. 귀하의 데이터가 형식에 대해 유효하지 않은 것 같습니다 (rawData 메서드가 실제로 제공되는대로 제공되는 경우). – Goran