} 报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."); } 我自己写的没老师写得好 就不拿出来丢人了
如果我现在的文件位置是:“c://fileName” 那么压缩与解压分别调用那一个接口呢,麻烦楼上兄台写一下这个方法调用 给我。谢谢
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)
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.");
}
我自己写的没老师写得好 就不拿出来丢人了