問題タブ [gzipoutputstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
111 参照

java - TreeSet オブジェクトを圧縮するときの Java GZipOutputStream StackOverflowError

GZipOutputStream を使用して TreeSet オブジェクトを byte[] 配列に圧縮すると、奇妙な StackOverflowError が発生しました。

圧縮を行うコードは非常に標準的です。

TreeSet オブジェクトにはデータ オブジェクトのコレクションが含まれます。これらのオブジェクトのフィールドはフラットです。つまり、マップ/リスト/セットはありません (いくつかのコレクション フィールドがある場合がありますが、TreeSet が圧縮されているため null になります)。数値、ブール値、および文字列。

いくつかの投稿で、複雑なマップ構造を扱うときに GZIPOutputStream にこの問題があることを読みましたが、それ以上の詳細はありませんでした。

このようなスタック オーバーフロー エラーで GZIP が壊れる傾向があるマップの種類を知っている人はいますか? 私が圧縮しているTreeSetも特に大きいです...エラーは散発的に発生します。私はそれを自己生成することができませんでした.これらのTreeSetがアクティブに使用されている場合(読み取り、追加、およびジッパー)。

0 投票する
4 に答える
2181 参照

java - GZIPOutputStream によって形成された BufferedWriter を介してファイルに書き込まれたバイト数をカウントします

私はBufferedWriter以下に示すように持っています:

次のようなファイルのクエリを実行せずに、ファイルに書き込まれたバイトを調べたい

それはオーバーヘッドを追加するので、私はそれを望んでいません。

また、私はこれを行うことができません:

圧縮前にサイズを与えるので。

0 投票する
3 に答える
1181 参照

java - ローカルで gzip ファイルを作成せずに GZIPOutputStream で圧縮してアップロードする

でファイルをアップロードする前に、Java でファイルを圧縮しようとしていますGZIPOutputStream。アップロード用に gzip されたファイルをメモリに保存し、ローカル コンピューターに gzip されたファイルを生成しないようにする方法はありますか?

ありがとう!

0 投票する
1 に答える
3054 参照

java - BufferedOutputStream 複数行 Write in File

作成した関数に少し問題があります。この関数に文字列を与えるたびに、同じファイルの新しい行に保存されるようにしたいのですが、実際には、最後に与えた文字列のみを保存しています。何度も上書きするようなもの 助けが必要

たとえば、BufferedWriter には、それを行うのに役立つ newLine というメソッドがあります。

しかし、GZIPOutputStream クラスを使用したいので、BufferedOutputStream が必要です。

それを行う方法はありますか?ありがとう

0 投票する
1 に答える
1369 参照

java - try-wtth-resources ブロック内で GZIPOutputStream オブジェクトを使用する場合、finish() を呼び出す必要がありますか?

try-with-resources [autoclosable] ブロック内で GZipOutputStream を使用する場合、リソースを使い終わっfinish()た後に明示的に呼び出す必要がありますか?

0 投票する
1 に答える
1318 参照

java - ファイルの NIO GZIP 圧縮とコピー

私はFileChannelandを使用して、fromFile からtoFile にFileInputStream単純なファイルをコピーしていました。FileFile

コードは基本的に次のようになります。

とは適切なfromFileオブジェクトです。ここで、から直接コピーするのではなく、GZIP (Java ライブラリにある) を使用してコンテンツを圧縮し、. また逆に、 から転送するときも同様に解凍したいと思います。toFileFilefromFiletoFiletoFile

次のような簡単な方法があるのだろうかと思っていました

また

残りのコードはすべて変更されません。これに対する最もクリーンな解決策について何か提案はありますか?

ありがとう..

0 投票する
0 に答える
3430 参照

java - RESTful Web サービスを介したファイルの送信: Base64 エンコーディングと GZip 圧縮

数日以来、RESTful Web サービスでファイルを送受信するプロジェクトである Java をいじっています。これは既存のソフトウェア システムの拡張となるため、追加のライブラリはできるだけ少なくします。このソフトウェア システム内でプロジェクトを実行するには、API に従う必要があります。そして、「拡張機能」を OSGI バンドルとして提供する必要があります。

私のプロジェクトの結果はきびきびと実行する必要があり、場合によってはモバイル デバイスでも実行する必要があるため、ファイルで GZip 圧縮も使用したいと考えています。さらに、REST経由でファイルを送信することについて読んだとき、ファイルの内容をBase64でエンコードし、ファイル名を一緒に送信するのが最善のようです。

これにより、次のクライアント コード サンプルが表示されます: (実際の「拡張子」ではありません)

ログ出力から、この部分は正常に動作しているようです。(最初の 3 行)

サービスでこれを読み取り、デコード、解凍しようとすると、問題が発生します。(ソフトウェア システムの「拡張子」) 上記のログの最後の行に出力されているとおりです。

電話を受けるコードは次のようになります。

私はウェブとスタックオーバーフローを見回しましたが、それは正しいようです。次のような投稿からいくつかのアイデアを得ました: How to convert Java String into byte[]? 成功しないBase64 データ の ストリーム デコード。私が見落とした何かがあるはずです。

サーバーからのログは次のとおりです。

GZip 圧縮をコメントアウトすると、これは問題なく機能します。どんな助けやヒントも大歓迎です。

敬具

0 投票する
1 に答える
1155 参照

java - リクエストボディを圧縮する OkHttp Interceptor を書く

Gzip を使用してリクエスト本文を圧縮するインターセプターを作成しようとしています。

私のサーバーは圧縮されたリクエストをサポートしていないため、application/octet-stream 代わりに Content-Type: gzipを使用し、リクエスト本文を手動で圧縮します。バックエンドで手動で圧縮解除されます。

機能しません - リクエストが発行されてから 30 秒後に a500 Server Errorが受信されます。サーバーにはタイムアウト例外があります。

私の推測では、gzip メソッドの入力/出力で間違ったことをしたと思います...何かアイデアはありますか?

アプリを停止した場合に更新すると、リクエストは正常に処理されます。これは、アプリがまだ outputBuffer からのデータを待機していることを示していますか?