사용중인 '배열'종류에 따라 옵션이 달라집니다. 배열, 목록 <> 또는 ArrayList입니까?
목록의 경우 CopyTo()
을 사용하여 목록의 일부를 가져와 이진 배열에 넣을 수 있습니다. 그러면이 배열을 XmlWriter로 쓸 수 있습니다. XmlReader에서 다시 읽으려면 InsertRange
을 사용하여 데이터를 비 직렬화 할 수 있습니다.
독서 예 :
// elsewhere
List<byte> bytes;
// in the deserialization
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int index = 0;
int numRead = -1;
while (numRead != 0) // actually read stuff
{
numRead = reader.ReadContentAsBase64(buffer, bufferSize);
if (numRead > 0)
{
bytes.CopyTo(buffer, index, numRead);
index += numRead;
}
}
참고 : 위의 코드 테스트, 그러나 아마 가까운되지 않습니다. 비슷하지만 base64로 데이터를 인코딩하고 쓰는 것과 반대로 할 수 있습니다. 다른 유형의 경우 배열을 바이트 목록으로 변환하기 만하면됩니다.
바이트가 아닌 다른 형식을 바이트 배열로 가져 오려면 System.BitConverter
을 사용해야합니다. 여기에는 기본 데이터 형식을 바이트 배열로 변환하는 GetBytes
과 ToInt32
및 ToBoolean
을 포함하는 ToXxx
의 두 가지 방법이 있습니다. Base64 정보를 읽은 후 또는 작성하기 전에 해당 변환을 직접 담당해야합니다.
BitConverter를 사용하여 바이트 단위 변환을 수행 할 수 있지만 배열을 단일 바이트 배열로 변환하기위한 알고리즘을 설계하는 것은 사용자의 몫입니다.
byte [] 또는 int [,]와 같은 System.Array입니다. "바이너리 배열"이란 무엇입니까? XmlWriter로 어떻게 작성합니까? –
업데이트 된 예보기 :) –
아, '숫자 또는 부울 유형'. 그런 다음 쓰기 전에 바이트 기반 배열로 변환해야합니다. –