7-zip 压缩解压 源码分析 JAVA lzma

mainIdear 2011-05-13 12:41:39
本人下载了一个JAVA版,7-zip(lzma)源码,但是想调用 其中的接口去压缩与解压,但是不知调用那个才是正确的?
请各位大侠引导下

在网上找了好久,找不到API文档!

可以 QQ:715699732
...全文
902 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hrzjojo 2012-09-09
  • 打赏
  • 举报
回复
这么老的帖子 ??? 看看 api 其实 也很容易 做出 解压缩 程序的 ! 那天无聊看到java解压缩包 有

点好奇 就试了试 一边看一边写 半小时 就搞定了一个 压缩程序!
晨迷小妖 2012-09-07
  • 打赏
  • 举报
回复
╮(╯▽╰)╭ 这是我老师barrywey讲课时候写的例子:

private static void zip() throws FileNotFoundException, IOException {
File sourceFolder = new File("d:\\zip_aaa"); // 源文件夹
File destFile = new File("d:\\zip_aaa\\file.zip"); // 目标文件
//找出源文件夹中的文件,并创建对应的ZipEntry对象
File[] filesName = sourceFolder.listFiles();
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(destFile));
byte[] buffer = new byte[1024 * 3];
for (int i = 0; i < filesName.length; i++) {
ZipEntry entry = new ZipEntry(filesName[i].getName());//ZipEntry文件名中文会乱码
FileInputStream fis = new FileInputStream(filesName[i].getPath());
zos.putNextEntry(entry);//将entry对象加入到zip对象中
int size = fis.read(buffer); //从源文件中读取字节并写入相应的文件
while(size != -1) {
zos.write(buffer,0,size);
size = fis.read(buffer);
}//end of while
zos.flush();
fis.close();
}
zos.close();
System.out.println("it's done.");
}


我自己写的没老师写得好 就不拿出来丢人了
qiangrx 2012-09-07
  • 打赏
  • 举报
回复
不知道楼主现在懂么?同求呀!!!
mainIdear 2011-05-13
  • 打赏
  • 举报
回复
但是如何对一个 file 文件 压缩啊?
如果我现在的文件位置是:“c://fileName” 那么压缩与解压分别调用那一个接口呢,麻烦楼上兄台写一下这个方法调用 给我。谢谢
shine333 2011-05-13
  • 打赏
  • 举报
回复
SevenZip.Compression.LZMA.Encoder/Decoder
mainIdear 2011-05-13
  • 打赏
  • 举报
回复
还有,如果要源码,我可以给大家传,或者上官网下载
mainIdear 2011-05-13
  • 打赏
  • 举报
回复
public void testCode() {
InputStream input = null;
OutputStream output = null;
try {
input = new FileInputStream("E:\\test\\myfiles.zip");
output = new FileOutputStream("E:\\test\\myfiles");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Decoder decoder = new Decoder();
try {
decoder.Code(input, output, 0, null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


java.lang.NullPointerException
at SevenZip.Compression.LZMA.Decoder$LiteralDecoder.Init(Decoder.java:118)
at SevenZip.Compression.LZMA.Decoder.Init(Decoder.java:235)
at SevenZip.Compression.LZMA.Decoder.Code(Decoder.java:249)
at SevenZip.Compression.LZMA.test.DecoderTest.testCode(DecoderTest.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

mainIdear 2011-05-13
  • 打赏
  • 举报
回复
那么压缩 是调用那个方法:?
from_null 2011-05-13
  • 打赏
  • 举报
回复
楼上的解释太强大了,有能看懂的么?
shine333 2011-05-13
  • 打赏
  • 举报
回复
code方法
shine333 2011-05-13
  • 打赏
  • 举报
回复
InputStream
OutputStream

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧