是否有一种不使用.Net方法进行追加的方法? 还是使用成本甚至为零?
IRandomAccessStream sourceStream;
IRandomAccessStream destinationStream;
// This uses .Net managed stream but I want to avoid that
sourceStream.AsStream().CopyTo(destinationStream.AsStream());
答案 0 :(得分:0)
是否有一种不使用.Net方法进行追加的方法?
我认为您可以使用字节数组作为代理来处理。
将IRandomAccessStream转换为字节[]
async Task<byte[]> Convert(IRandomAccessStream s)
{
var dr = new DataReader(s.GetInputStreamAt(0));
var bytes = new byte[s.Size];
await dr.LoadAsync((uint)s.Size);
dr.ReadBytes(bytes);
return bytes;
}
用于IRandomAccessStream的字节[]
async Task<InMemoryRandomAccessStream> ConvertTo(byte[] arr)
{
InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream();
await randomAccessStream.WriteAsync(arr.AsBuffer());
randomAccessStream.Seek(0); // Just to be sure.
return randomAccessStream;
}
用于串联字节数组
byte[] combined = bytesOne.Concat(bytesTwo).Concat(bytesThree).ToArray();