問題タブ [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 投票する
0 に答える
173 参照

android - Androidでより大きなzipを解凍する方法は?

次のように、Android Studio プロジェクトでファイルを解凍します

元のzipファイルは約です。サイズは 30 MB で、*.txt ファイルのみが含まれます。これらのテキスト ファイルのうち 2 つは 100 MB を超えているため、次のエラー メッセージが表示されます。

E/AndroidRuntime: FATAL EXCEPTION: main プロセス: com.example.myapp、PID: 15821 java.lang.OutOfMemoryError: 167083628 バイトの割り当てを 33542384 の空きバイトと 136MB で OOM で java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream .java:91) で java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201) で com.example.myapp.managers.UnzipManager.decompressZip(UnzipManager.java:104) で com.example.myapp.managers.UnzipManager. (UnzipManager.java:43) com.example.myapp.MyActivity.onCreate(MyActivity.java:103) で android.app.Activity.performCreate(Activity.java:6272) で android.app.Instrumentation.callActivityOnCreate(Instrumentation. java:1108) で android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387) で android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) で android.app.ActivityThread.access$900(ActivityThread.java:157) で android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356) で android.os. Handler.dispatchMessage(Handler.java:102) で android.os.Looper.loop(Looper.java:148) で android.app.ActivityThread.main(ActivityThread.java:5551) で java.lang.reflect.Method.invoke (ネイティブ メソッド) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) で com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) で1356) で android.os.Handler.dispatchMessage(Handler.java:102) で android.os.Looper.loop(Looper.java:148) で android.app.ActivityThread.main(ActivityThread.java:5551) で java. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) の lang.reflect.Method.invoke(ネイティブ メソッド) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) の)1356) で android.os.Handler.dispatchMessage(Handler.java:102) で android.os.Looper.loop(Looper.java:148) で android.app.ActivityThread.main(ActivityThread.java:5551) で java. com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) の lang.reflect.Method.invoke(ネイティブ メソッド) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) の)

これらのファイルを適切に解凍するにはどうすればよいですか?

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

java - Java の 1.8 へのアップグレード時にファイルを解凍する際の問題

私はコアjava.util.zipクラスを使用しています。次のコードを使用してクライアント ファイルを解凍します。

次のエラーが表示されます:

ただし、JDK 1.6 では同じコードが正常に機能します。

私は一日中検索しましたが、Java JDK にこのコードに対応する変更があることを見つけることができませんでした。

私の調査結果を裏付ける適切な原因またはリンクを見つけるのを手伝ってください。

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

java - Android ZipInputStream ZipEntry がファイルの最後まで読み取らない

json ファイルといくつかの base64 でデコードされた画像を含む圧縮されたフライがあり、次のコードを使用してデータを読み取ります。

// これは問題ではありません。問題は、zis.read(buffer, 0, (int) size)がファイルからすべてのデータを読み取らないため、JSONException

編集:

問題はストリームからのデータの読み取りではなく、すべてのデータを読み取りますが、これは JSONException であるエンコードに問題があると思います。

2959607 は文字列の長さです

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

java - Java - ZipInputStream の解析中に OutOfMemoryError を取得する

Web サービスから取得した zip ファイルの内容の読み取りに問題があります。

zip ファイルはbytes、以下のコードでわかるように、 と呼ばれるバイト配列に格納されます。

実行するIOUtils.toString(zis)と、OutOfMemoryError: Java heap spaceが発生します。

この問題は、zip に含まれる json ファイルのサイズが 150MB を超えていることが原因であると確信しています。他の小さなファイルで試してみましたが、json コンテンツを問題なく取得できます。

メモリに保存せずにzipの内容を読み取る方法はありますか?

編集: ヒープメモリを増やすことができることは知っていますが、どの環境でも機能するため、コードベースのソリューションを探しています。

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

java - Java: Zipinputstream から Zipoutputstream への変換により、「end-of-central-directory signature not found」エラーが発生する

Zip を a から a にコピーしようとしてZipinputstreamZipoutputstreamます。

Zipをbyte[]Oracleデータベースのように保存します。私Zipinputstreamはzipを解凍するために使用し(後でZipを編集したい)、それをに入れてZipoutputstream新しいものを取得し、byte[]この配列を使用して後でServletOutputStream. 新しいファイルを作成すると-なしでZipinputstream-動作します。しかし、使用するZipinputstreamとエラーが発生します。

これが私のコードです: