当前位置:编程学习 > JAVA >>

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

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

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

可以 QQ:715699732 --------------------编程问答-------------------- 还有,如果要源码,我可以给大家传,或者上官网下载 --------------------编程问答-------------------- SevenZip.Compression.LZMA.Encoder/Decoder --------------------编程问答-------------------- 但是如何对一个 file 文件 压缩啊?
如果我现在的文件位置是:“c://fileName” 那么压缩与解压分别调用那一个接口呢,麻烦楼上兄台写一下这个方法调用 给我。谢谢 --------------------编程问答-------------------- InputStream
OutputStream --------------------编程问答-------------------- code方法 --------------------编程问答-------------------- 楼上的解释太强大了,有能看懂的么? --------------------编程问答-------------------- 那么压缩 是调用那个方法:? --------------------编程问答-------------------- 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)

--------------------编程问答-------------------- 不知道楼主现在懂么?同求呀!!! --------------------编程问答-------------------- ╮(╯▽╰)╭  这是我老师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.");
}


我自己写的没老师写得好 就不拿出来丢人了 --------------------编程问答-------------------- 这么老的帖子 ???    看看 api  其实 也很容易 做出 解压缩 程序的  !   那天无聊看到java解压缩包 有

点好奇  就试了试  一边看一边写 半小时 就搞定了一个 压缩程序!
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,