3

.NETでJavaのDeflater.deflate()機能を実現する方法を知っている人はいますか?JavaのInfalter.inflate()メソッドで理解できるでしょうか?

よろしく、ラファル

4

4 に答える 4

3

#zipLibを使用しました。それはかなり簡単です。

彼らのサイトから取られた:

#ziplib (SharpZipLib、以前の NZipLib) は、.NET プラットフォーム用に完全に C# で記述された Zip、GZip、Tar、および BZip2 ライブラリです。アセンブリ (GAC にインストール可能) として実装されるため、他のプロジェクト (任意の .NET 言語) に簡単に組み込むことができます。#ziplib の作成者は次のように述べています。 ."

于 2011-06-29T15:13:06.237 に答える
3

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を見てください

于 2015-09-08T18:31:39.670 に答える
2

System.IO.Compression名前空間を確認してください。DeflateStreamがあります。DeflateStream は圧縮に Deflate アルゴリズムを使用し、java.util.zip.deflater も同様です。したがって、.NET で圧縮し、Java 実装で解凍することも、その逆も可能です。

于 2011-06-30T02:26:48.767 に答える
0

あります

ZipPackage クラス

また

GZipStream クラス

これは役立つかもしれませんが、それらがどれほど使いやすいか、またはJavaと互換性があるかどうかはわかりません(申し訳ありませんが、素晴らしい答えではありません)。

zip に関する素晴らしいブログ投稿があります: http://blogs.msdn.com/b/bclteam/archive/2010/06/28/working-with-zip-files-in-net.aspx

または、C# 用のいくつかのオープン ソース zip ユーティリティ。

于 2011-06-29T15:06:41.917 に答える