打印流
分类:打印流一般是指:PrintStream、PrintWriter两个类
特点:
1.打印流只操作文件目的地,不操作数据源
2.特有的写出方法可以实现,数据原样写出
3.特有的写出方法,可以实现自动刷新,自动换行
解压缩流
解压本质:把每一个ZipEntry按照层级拷贝到本地另一个文件夹中。
package myzip;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class Zipdemo01 {
public static void main(String[] args) {
File src=new File("D:\\aaa.zip") ;
File dest=new File("D:\\");
}
public static void unzip(File src,File dest) throws IOException {
ZipInputStream zip=new ZipInputStream(new FileInputStream(src));
ZipEntry entry ;
while((entry=zip.getNextEntry())!=null){
System.out.println(entry);
if(entry.isDirectory()){
File file=new File(dest,entry.toString()) ;
file.mkdirs();
}else {
FileOutputStream fos=new FileOutputStream(new File(dest,entry.toString()));
int b;
while((b=zip.read())!=-1){
fos.write(b);
}
fos.close();
zip.closeEntry();
}
}
zip.close();
}
}
压缩流
/*一个文件夹压缩**/
package myzip;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class zipdemo03 {
public static void main(String[] args) throws IOException {
File src=new File("D:\\aaa");
File destParent=src.getParentFile();
File dest=new File(destParent,src.getName()+".zip");
ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(dest));
toZip(src,zos,src.getName());
zos.close();
}
public static void toZip(File src,ZipOutputStream zos,String name) throws IOException {
File[] files = src.listFiles();
for (File file : files) {
if(file.isFile()){
ZipEntry entry=new ZipEntry(name+"\\"+file.getName()) ;
zos.putNextEntry(entry);
FileInputStream fis=new FileInputStream(file);
int b;
while((b=fis.read())!=-1){
zos.write(b);
}
fis.close();
zos.closeEntry();
}else {
toZip(file,zos,name+"\\"+file.getName());
}
}
}
}
package myzip;
/*一个文件压缩*/
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class zipdemo02 {
public static void main(String[] args) throws IOException {
File src=new File("D:\\a.txt");
File dest=new File("D:\\");
toZip(src,dest);
}
public static void toZip(File src,File dest) throws IOException {
ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(new File(dest,"a.zip")));
ZipEntry entry=new ZipEntry("z.txt");
zos.putNextEntry(entry);
FileInputStream fis=new FileInputStream(src);
int b;
while((b=fis.read())!=-1){
zos.write(b);
}
zos.closeEntry();
zos.close();
}
}
Commons-io
是apache开源基金组织提供的一组有关io操作的开源工具包。
作用:提高io流的开发效率
使用步骤:
1.在项目中创建一个文件夹:lib
2.将jar包复制粘贴到lib文件夹
3.右击jar包,选择Add as Library->点击ok
4.在类中导包使用