C#MemoryStream을 사용하여 바이너리 내용을 압축합니다(String, 이미지 등).
먼저 압축 클래스를 설정합니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.IO.Compression;
namespace Felomeng
{
public class MyZip
{
public static MemoryStream Compress(byte[] inBytes)
{
MemoryStream outStream = new MemoryStream();
using (MemoryStream intStream = new MemoryStream(inBytes))
{
using (GZipStream Compress =
new GZipStream(outStream,
CompressionMode.Compress))
{
intStream.CopyTo(Compress);
}
}
return outStream;
}
public static byte[] Decompress(MemoryStream inStream)
{
byte[] result = null;
MemoryStream compressedStream = new MemoryStream(inStream.ToArray());
using (MemoryStream outStream = new MemoryStream())
{
using (GZipStream Decompress = new GZipStream(compressedStream,
CompressionMode.Decompress))
{
Decompress.CopyTo(outStream);
result = outStream.ToArray();
}
}
return result;
}
}
}
사용법은 다음과 같습니다.
String myString = "testCompress", // string
result;//
MemoryStream outFile = new MemoryStream();//outFile ,
outFile = Compress(Encoding.UTF8.GetBytes(myString));//
result = Encoding.UTF8.GetString(Decompress(outFile));//
더 좋은 압축 결과를 얻으려면 시스템이 제공하는 GZipStream보다 더 좋은 압축 알고리즘을 사용할 수 있다.
클릭하여 링크 열기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Visual Studio 2017에서 SQLite를 사용한 Windows Forms 앱 개발Visual Studio 2017에서 SQLite를 사용하여 Windows Forms 앱을 개발해 보았습니다. 아직 서버 탐색기나 TableAdaptor를 사용한 GUI에서의 개발에는 대응하지 않는 것 같습니다. 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.