.NETでJavaのDeflater.deflate()機能を実現する方法を知っている人はいますか?JavaのInfalter.inflate()メソッドで理解できるでしょうか?
よろしく、ラファル
.NETでJavaのDeflater.deflate()機能を実現する方法を知っている人はいますか?JavaのInfalter.inflate()メソッドで理解できるでしょうか?
よろしく、ラファル
#zipLibを使用しました。それはかなり簡単です。
彼らのサイトから取られた:
#ziplib (SharpZipLib、以前の NZipLib) は、.NET プラットフォーム用に完全に C# で記述された Zip、GZip、Tar、および BZip2 ライブラリです。アセンブリ (GAC にインストール可能) として実装されるため、他のプロジェクト (任意の .NET 言語) に簡単に組み込むことができます。#ziplib の作成者は次のように述べています。 ."
DotNetZip パッケージ ( https://dotnetzip.codeplex.com/ )内の ZlibStream クラスは、java.util.zip.deflater と同等です。
Nuget: インストール パッケージ DotNetZip
バイト配列の使用法:
ZlibStream.CompressBuffer(dataBytesArray);
ZlibStream.UncompressBuffer(dataBytesArray);
また、文字列の圧縮と圧縮解除もあり、このクラスは .NET DefalteStream とまったく同じようにストリームで使用できます。DotNetZip の DeflateStream はその Java と同じではないことに注意してください。ZlibStream は同じです。
追加情報: .NET の DeflateStream は、Java の Deflate と互換性がありません。実際、Java は Zlib を使用し、デフォルトで 2 ~ 6 バイトのヘッダーと 4 バイトのチェックサムを追加します。バイトの切り取り ( http://blogs.msdn.com/b/bclteam/archive/2007/05/16/system-io-compression-capabilities-kim-hamilton.aspxなどの記事で推奨) は機能しますが、ヘッダーの長さを解析するとバグが発生する可能性があるため、お勧めしません。
SharpZipLib は純粋な C# であるため、お勧めしません。通常は、圧縮および解凍データの操作でパフォーマンスが重要になります。http://www.codeproject.com/Articles/434583/SharpZipLib-or-DotNetZip-Which-should-you-useを見てください
System.IO.Compression名前空間を確認してください。DeflateStreamがあります。DeflateStream は圧縮に Deflate アルゴリズムを使用し、java.util.zip.deflater も同様です。したがって、.NET で圧縮し、Java 実装で解凍することも、その逆も可能です。
あります
また
これは役立つかもしれませんが、それらがどれほど使いやすいか、またはJavaと互換性があるかどうかはわかりません(申し訳ありませんが、素晴らしい答えではありません)。
zip に関する素晴らしいブログ投稿があります: http://blogs.msdn.com/b/bclteam/archive/2010/06/28/working-with-zip-files-in-net.aspx
または、C# 用のいくつかのオープン ソース zip ユーティリティ。