javaでlzh 2007/11/03

javaで、lzhなファイルを解凍したかったので、調べたら、ライブラリを公開している方がいたので使用してみました。
zipパッケージライクに使えます。



javadocもわかりやすかったです。

package a;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URISyntaxException;

import jp.gr.java_conf.dangan.util.lha.LhaFile;
import jp.gr.java_conf.dangan.util.lha.LhaHeader;

public class TestLha {

public static void main(String[] args) throws URISyntaxException,
IOException {
// A070330.lzh
File file = new File(TestLha.class.getResource("/A070330.lzh").toURI());
LhaFile lhaFile = new LhaFile(file);
LhaHeader[] headers = lhaFile.getEntries();
for (LhaHeader lhaHeader : headers) {
System.out.println(lhaHeader.getPath());
BufferedInputStream stream = new BufferedInputStream(lhaFile
.getInputStream(lhaHeader));

BufferedOutputStream outputStream = new BufferedOutputStream(
new FileOutputStream("/Users/nakawakashigeto/tmp/" + lhaHeader.getPath()));
byte[] bs = new byte[8192];
while(stream.read(bs) != -1){
outputStream.write(bs);
outputStream.flush();
}
stream.close();
outputStream.close();
}

}

}

: