質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

2944閲覧

ZipEntryの引数について(Java:JDK1.6)

aaa_bbb

総合スコア19

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2016/08/25 17:56

Java(JDK1.6)を使用して、中身が空のzipファイルを作成したいです。
圧縮処理の中で、ZipEntryの引数に相対パスやファイル名をいれると、
その対象のZipEntryが作成されるのですが、
zipファイルの中身が空の場合、何を引数に指定したらよいのでしょうか?

ZipEntry entry = new ZipEntry("");

のようにブランクを入れるのがよいのでしょうか?(NULLではないので、通るはずです。)
また、他に方法があるのでしょうか?

ご存知の方、ご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/25 23:41

空のzipファイルの作成の意図が不明。 基本作らない
guest

回答1

0

ベストアンサー

Java 8 ですが、こんな感じで空zipができました。ZipEntryは使わず、単にZipOutputStreamを開けて閉じただけです。

java

1import java.io.*; 2import java.util.zip.*; 3 4public class Teratail45612 { 5 public static void main(String... args) { 6 try(ZipOutputStream zos = 7 new ZipOutputStream( 8 new FileOutputStream( 9 new File("empty.zip")))) { 10 // do nothing; 11 } 12 } 13}

bash

1$ od -t cx1 empty.zip 20000000 P K 005 006 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 3 50 4b 05 06 00 00 00 00 00 00 00 00 00 00 00 00 40000020 \0 \0 \0 \0 \0 \0 5 00 00 00 00 00 00 60000026

PK\05\06 はZIPファイルの最後のブロックを意味します。
参考: https://support.pkware.com/display/PKZIP/APPNOTE

なにも情報を持っていないZipファイルは常に上記のバイト列になるので、単に OutputStream で書くだけでも作れます。こんなかんじ?

java

1 public static void main(String... args) throws Exception { 2 int[] emptyzip = new int[] { 'P', 'K', 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 3 try(OutputStream os = new FileOutputStream(new File("empty.zip"))) { 4 for(int b: emptyzip) { os.write(b); } 5 } 6 }

投稿2016/08/26 07:24

matobaa

総合スコア2493

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問