問題タブ [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.

0 投票する
10 に答える
48894 参照

java - ZipInputStream から ByteArrayOutputStream への読み取り

から単一のファイルを読み取り、java.util.zip.ZipInputStreamそれを にコピーしようとしていますjava.io.ByteArrayOutputStream(その後、 を作成して、それjava.io.ByteArrayInputStreamをサードパーティのライブラリに渡して、ストリームを閉じてしまいます。ZipInputStream閉じたくありません) .

ここにはおそらく基本的なものが欠けていますが、ここでは while ループに入ることはありません。

ストリームをコピーできるようにするために何が欠けていますか?

編集:

ZipInputStreamこれはファイルからのものではないことを先に述べておくべきだったので、 ZipFile. サーブレットを介してアップロードされたファイルからのものです。

また、このコード スニペットに到達する前にgetNextEntry()、既に を呼び出しています。ZipInputStreamファイルを別のファイルにInputStream(OutputStream上記の方法で)コピーしようとせずZipInputStream、サード パーティのライブラリに渡すだけでは、ライブラリはストリームを閉じ、残りのファイルを処理するなど、それ以上何もできません。ストリーム。

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

ruby - Ruby の ZipInputStream が行末を台無しにするのはなぜですか?

ZipInputStream が、ファイルに保存されている行末で下品な自由を取っていることに満足しています。少なくとも、ファイルを保存しているプラ​​ットフォームに適しているのであれば。残念ながら、zip からテキスト ファイル (.txt、.cpp. など) を取り出すと、\n (0x0A) が \r\n (0x0d0a) に置き換えられます。大変ご迷惑をおかけいたしました。

行末を完全に変更しないようにするか、選択したものを使用するように設定できるフラグはありますか?

ありがとう。

(私は zip ファイル、その作成などを確認しました。他の zip ツールを使用して解凍し、適切にアーカイブされていることを確認しました。rdebug を使用してプロジェクトをステップ実行し、ZipInputStream 呼び出しが read であることを確認しました。 () は行末に \r\n を返します。)

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

java - byte[] から読み取ったときに ZipFile エントリのコンテンツを抽出する (Java)

コンテンツが byte[] として表示される zip ファイルがありますが、元のファイル オブジェクトにアクセスできません。それぞれのエントリーの内容を読みたい。バイトの ByteArrayInputStream から ZipInputStream を作成でき、エントリとその名前を読み取ることができます。ただし、各エントリの内容を抽出する簡単な方法がわかりません。

(私は Apache Commons を見てきましたが、簡単な方法もわかりません)。

更新@Richのコードは問題を解決しているようです、ありがとう

QUERY両方の例の乗数が * 4 (128/512 および 1024*4) であるのはなぜですか?

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

java - ZipInputStream を使用して文字列値を解凍しようとしているときに、IOException プッシュ バック バッファがいっぱいになる

文字列値を解凍しようとしています。
しかし、私は取得していjava.io.IOException: Push back buffer is fullます:

例外スタック トレース:

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

java - ZipInputStream を使用して docx ファイルから document.xml を取得する

docx ファイルの inputStream があり、docx 内にある document.xml を取得する必要があります。

ZipInputStream を使用してストリームを読み取っていますが、コードは次のようなものです

ご覧のとおり、zipEntry.getName の出力は、ある時点で「word/document.xml」になります。この document.xml をストリームとして渡す必要があります。.getInputStream の呼び出しでこれを簡単に渡すことができる ZipFile メソッドとは異なり、この docXFile をどのように行うことができるのでしょうか?

前もってありがとう、ミーナクシ

@Update: このソリューションの出力を見つけました:

この出力ストリームを入力ストリームに変換するための基本的な API があるかどうか疑問に思っていますか?

0 投票する
5 に答える
4261 参照

scala - ZipInputStreams と ZipOutpuStreams を使用する場合、Scala で可変変数を回避するにはどうすればよいですか?

zip ファイルを読み取ろうとしており、必要なファイルがいくつかあることを確認してから、有効なすべてのファイルを別の zip ファイルに書き出そうとしています。java.util.zipの基本的な紹介には多くの Java 主義が含まれており、自分のコードをより Scala ネイティブにしたいと考えています。具体的には、 の使用は避けたいと思いますvars。ここに私が持っているものがあります:

私は Scala 2.7.7 を使用していることを付け加えておきます。

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

java - 解凍後に zip ファイルを開く/ダウンロードする際の問題 (Java/ZipInputStream)

背景
現在、HTTP サーブレットを介して HTTP リクエストで zip ファイルを取得しようとしています。受信した zip ファイルには、3 つの異なるファイルが含まれています。これらのファイルにはフィルターで除外したい情報が含まれており、ソースからこれを行うことはオプションではありません (その方がはるかに優れていることはわかっていますが)。

ファイルが最初からビルドされているソースからファイル内の一部の情報を除外できないため、私の解決策は、ファイルを解凍し、これら 3 つのファイルを文字列として読み取ってからフィルター処理することです。最後に、すべてを「zipfile」(inputStream) として「再構築」し、inputStream を返します。

問題
現在、ファイルの解凍とフィルタリングを処理するクラスを作成しました。最後に、zip ファイルと 3 つのファイルを含む新しい inputStream を返したいだけです。

HTTPエンティティからコンテンツをinputStreamに取得し、このinputStreamを解凍して、3つのファイルを3つの文字列として取得するところまで来ました。これが機能するかどうかを確認するために、現在、それらを解凍してinputStreamを閉じて返すだけではやりたくありません。ただし、inputStreamを返すと例外が発生します。

これは、inputStream が以下に示す関数の外部で使用されるためです。zipInputStream を閉じると、おそらく、さらに作業を進めるために inputStream も閉じます。

現在のコード

これをできるだけ明確に表現できればと思います。この関数の外にソリューション全体を表示できない場合、これを理解するのが非常に混乱していることは今でもわかります。

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

zip - 単一のInputStreamを介して複数のZipEntriesを読み取るにはどうすればよいですか

InputStreamをパラメーターとしてサードパーティライブラリに渡す必要があります。サードパーティライブラリは、InputStreamから完全なコンテンツを読み取り、そのジョブを実行します。

私の問題は、私のファイルのいくつかがZipファイルであり、複数のZipEntryが含まれていることです。私が理解していることから、一度に1つのzipEntryを読み取り、次にzipInputStream.getNextEntry()を実行してから、もう一度読み取ることができます。ただし、サードパーティのライブラリはこれを理解しておらず、単一のInputStreamを想定しています。zipファイルのすべてのzipエントリは、単一のinputStreamとして使用できる必要があります。

その方法を教えてください。ファイルがローカルに(別のサーバーに)保存されていないため、ZipFileを使用できません。また、すべてのzipEntriesを読み取って、ByteArrayOutputStreamまたは文字列を作成することもできません。これは、ファイルが非常に大きくなる可能性があり、メモリ使用量が急増するためです。

1つのinputStreamが1つのzipファイルの複数のzipエントリから透過的に読み取れるようにする方法が必要です。

よろしくお願いします、プラザンナ

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

c# - File.OpenRead でファイルを開くときの System.IOException

内容を解凍するためにファイルを開くと、次の例外が発生します。Windows エクスプローラーでファイルを選択するか、ファイルの上にマウスを置いてツールチップを表示すると発生します。

ファイルが使用されなくなるまで待ってから読み取る方法はありますか? 基本的に、新しい zip ファイルのフォルダーを監視し、zip ファイルの内容を解凍してから削除します。

イベント ハンドラー: