У меня есть метод сжатия байтового массива. Я использовал memystream и пробный тест для тестирования. результат из memystream больше, даже если его тот же метод, может кто-нибудь объяснить почему?C# MemoryStream больше, чем FileStream
public byte[] DeflateCompress(byte[] data2Compress)
{
using (FileStream _fileToCompress = File.Create("_deflatecompressed.bin"))
{
using (DeflateStream _compressionStream = new DeflateStream(_fileToCompress, CompressionMode.Compress))
{
_compressionStream.Write(data2Compress, 0, data2Compress.Length);
_compressionStream.Close();
}
}
return File.ReadAllBytes("_deflatecompressed.bin");
}
public byte[] DeflateCompress(byte[] data2Compress)
{
using (MemoryStream _memStreamCompress = new MemoryStream())
{
using (DeflateStream _defalteStreamCompress = new DeflateStream(_memStreamCompress, CompressionMode.Compress))
{
_defalteStreamCompress.Write(data2Compress, 0, data2Compress.Length);
_defalteStreamCompress.Close();
}
return _memStreamCompress.GetBuffer();
}
}
Если я пишу выходной байтовый массив в файл, то один созданный с MemoryStream больше.
использовать '.ToArray' вместо' .GetBuffer' [MSDN] (http://msdn.microsoft.com/en-us/library/system.io.memorystream.getbuffer (v = vs.110) .aspx) предупреждает об этом – Plutonix