問題タブ [zipinputstream]
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.
java - hdfs でパスワード保護された zip ファイルをサポートしますか?
hdfsに存在するzipファイルを読み取るためにzipinputstreamを使用していましたが、パスワードで保護されたzipファイルがありました.zipinputstreamに渡す前に、hdfsのみでzipファイルをデコードする方法はありますか?動作するJavaライブラリzip4jがありますローカルファイルシステムのみを使用していますが、膨大な量のファイルがあったため、hdfs のみでファイルをデコードして開きたいと考えています。それを達成する方法はありますか?
java - Java ZipInputStream 抽出エラー
以下は、1 つのファイルのみを含む zip ファイルからファイルを抽出するコードです。ただし、抽出されたファイルは、WinZip またはその他の zip ユーティリティを介して抽出された同じファイルと一致しません。ファイルに奇数のバイトが含まれている場合、1バイトずれている可能性があると思います(バッファーのサイズが2で、読み取りが失敗すると中止するためです)。ただし、(WinMerge または Diff を使用して) 以下のコードで抽出されたファイルと Winzip を介して抽出されたファイルを分析すると、Java 抽出からバイトが欠落している領域がいくつかあります。これを修正する理由または方法を誰かが知っていますか?
この画像を使用してエラーを生成することはできましたが (画像を保存して sample3.zip として圧縮し、その上でコードを実行します)、十分なサイズのバイナリ ファイルには不一致が表示されるはずです。
java - Java InputStream 読み取りバッファ
次のように Java InputStream から読み取ろうとしているとします。
バイナリ ファイルを解析しています。この場合、次の短いファイルを読みたいので、バッファを 2 に設定します。次の int を読み取りたい場合は、バッファーのサイズを 4 に設定し、他の型についても同様に設定します。問題は、バッファーを満たすのに十分な未読データがあることがわかっている場合でも、zis.read(buffer) がバッファーを満たさない場合があることです。ファイルの内容全体を配列にダンプして解析することもできますが、それを行うために独自のストリーム リーダーを実装することになり、車輪の再発明のように思えます。読み取りカウントをチェックする read() 関数を実装することもできます。バッファサイズよりも小さい場合は、バッファを満たすために追加のデータを要求しますが、それは非効率的で見苦しいものです。これを行うより良い方法はありますか?
これは、ここに投稿された質問に対するフォローアップの質問です。