字符打印流
字符打印流有缓冲区,想要自动刷新需要开启
方法名说明
( /File /)
关联字符输出流/文件/文件路径
( , )
指定字符编码
(Write w, auto )
自动刷新
( out, auto , )
指定字符编码且自动刷新
方法名说明
void write(int b)
常规方法,规则和之前的方法一样
void (Xxx xx)
特有方法:打印任意数据,自动刷新,自动换行
void print(Xxx xx)
特有方法:打印任意数据,不换行
void ( ,… args)
特有方法:带有占位符的打印语句,不换行
在构造方法中,能开启自动刷新的参数是比较常用的
public static void main(String[] args) throws IOException, ClassNotFoundException {//注意,要开启自动刷新PrintWriter pw=new PrintWriter(new FileWriter("D:\\我的世界\\a2.txt"),true);pw.println("one");pw.print(111);pw.printf("%sone%s","two","three");pw.close();}
.out创建一个指向控制台的打印流
sout就是调用打印流的方法
这个打印流是不能关闭的,在系统中唯一存在
解压缩流/压缩流
解压缩流就是读取压缩包中的文件
压缩流就是把文件中的数据写道压缩包中
解压缩流
压缩包里的每一个文件在java中都是一个对象
解压的本质就是:把每一个对象按照层级拷贝到本地另外一个文件夹中
:zip压缩包的解压缩流,也是一个高级流
方法名说明
( is)
把基本流包装成高级流
方法名说明
Entry ()
获得文件夹中的文件或子文件夹
public static void main(String[] args) throws IOException{File src=http://www.kingceram.com/post/new File("D:\\我的世界\\three.zip");File dest=new File("D:\\我的世界\\");unzip(src,dest);}public static void unzip(File src,File dest) throws IOException {//创建一个解压缩流用来读取压缩包中的数据ZipInputStream zip=new ZipInputStream(new FileInputStream(src));//中间值,用来记录获取的文件或文件夹对象ZipEntry entry;//getNextEntry会一个一个的遍历压缩包,直到全部遍历完成,返回nullwhile ((entry=zip.getNextEntry())!=null){System.out.println(entry);if(entry.isDirectory()){//entry为文件夹,在目的地创建一个新的文件夹File file=new File(dest,entry.toString());file.mkdirs();}else {//entry为文件,读取压缩包中的文件,放到目的地中File file = new File(dest, entry.toString());FileOutputStream fos=new FileOutputStream(file);int b;while ((b= zip.read())!=-1){fos.write(b);}fos.close();zip.closeEntry();}}zip.close();}
压缩流
public static void main(String[] args) throws IOException {//创建File对象表示要压缩的文件File src=http://www.kingceram.com/post/new File("D:\\我的世界\\a1.txt");//创建File对象表示压缩包的位置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对象,表示压缩包中每一个文件和文件夹ZipEntry entry=new ZipEntry("a.txt");//把Zip对象放到压缩包中zos.putNextEntry(entry);FileInputStream fis=new FileInputStream(src);int b;while ((b=fis.read())!=-1){zos.write(b);}zos.closeEntry();zos.close();fis.close();}
public static void main(String[] args) throws IOException {//创建File对象表示要压缩的文件File src=http://www.kingceram.com/post/new File("D:\\我的世界\\aaa");//创建File对象表示压缩包放在哪里File fufile=src.getParentFile();//可以得到src的父级路径System.out.println(fufile);//创建File对象表示压缩包的位置File dest=new File(fufile,src.getName()+".zip");//创建压缩流关联压缩包ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(dest));toZip(src,zos,src.getName());}/**函数作用:获取src的每一个文件,变成ZipEntry对象,放到压缩包中*参数1:数据源*参数2:压缩流*参数3:压缩包内部的路径* */public static void toZip(File src,ZipOutputStream zos,String name) throws IOException {File[] files = src.listFiles();for (File file : files) {if(file.isFile()){//文件,变成Entry对象,放到压缩包中ZipEntry entry=new ZipEntry(name+"\\"+file.getName());//这里不能直接传file,因为file是绝对路径,带盘符的//所以此时就要用到第三个参数,第三个参数代表压缩包内部的路径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());}}}
- 央视春晚,我眼中的三宗“最” 中国之最节目串词
- 新闻特写拯救“巴斯”:吉尼斯纪录背后的“世界难题” 一 吉尼斯记录心情低落
- 这5种食物是隐藏的“热量炸弹”,小心吃完伤肝脏、毁血管、减寿命 吉尼斯记录热量炸弹
- 全世界“最顶级”的啤酒,却是一群和尚酿的!看完颠覆认知 吉尼斯记录的啤酒
- 视印度女子教育为“新鲜事”的环境下,塞兰坡差会建立的女子学校 吉尼斯记录印度学校
- 十二生肖:成龙的国际影响力能有多大?一部电影让法国归还文物 吉尼斯记录成龙
- 泰勒破纪录共获29座奖杯,身披粉红战袍热辣开唱,逆天长腿太吸睛 泰勒的吉尼斯记录
- 王者荣耀:真相了,排位赛真的段位越高越好打,因为低段位事真多 王者荣耀七大历史之最
- 欧洲杯巡礼之葡萄牙:C罗最后的倔强!卫冕冠军遭法德围剿 葡萄牙欧洲杯历史之最
- 盘点那些不符合发明者想法的发明,你知道几个? 坊子历史之最是谁发明的