io的学习4
打印流
分类:打印流一般是指: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.在类中导包使用