// JRE 1.6.0_07
// java.util.zip.ZipInputStream
// ZipInputStreamクラスを使用してZipファイルの解凍
// tag zip
// Zipファイル読み込み
String fileName = "test.zip";
ZipInputStream is = new ZipInputStream( new FileInputStream( fileName ) );
// まず、ファイルと同名のディレクトリ(拡張子除く)を作成する
String dirName = fileName.substring( 0, fileName.lastIndexOf( '.' ) );
new File( dirName ).mkdir();
// 全エントリーを舐める
ZipEntry entry;
while( ( entry = is.getNextEntry() ) != null ) {
// ディレクトリの場合はスキップ
if( entry.isDirectory() )
continue;
// ディレクトリ作成
String[] dirs = entry.getName().split( "/" );
String subDirName = dirName;
for( int i = 0; i < dirs.length - 1; i++ ) {
subDirName += "/" + dirs[i];
new File( subDirName ).mkdir();
}
// 内容をファイル書き込み
OutputStream os = new FileOutputStream( dirName + "/" + entry.getName() );
int i;
while( ( i = is.read() ) != -1 )
os.write( i );
is.closeEntry();
}
// InputStreamのclose
is.close();