2021-07-17

Java字节流和字符流的复制案例及测速

Java字节流和字符流的复制案例及测速

案例

package com.cnblogs;import java.io.*;import java.util.Scanner;public class TestCopyFile { public static void main(String[] args) {  System.out.println("请输入您要复制的源文件路径:");  String f = new Scanner(System.in).nextLine();  System.out.println("请输入您目标文件的路径:");  String t = new Scanner(System.in).nextLine();  InputStream in1 = null;  OutputStream out1 = null;  try {   in1 =new BufferedInputStream(new FileInputStream(f)) ;   out1 =new BufferedOutputStream(new FileOutputStream(t)) ;   int result;   while((result = in1.read()) != -1){    out1.write(result);   }  } catch (Exception e) {   e.printStackTrace();  } finally {   try {    out1.close();   } catch (IOException e) {    e.printStackTrace();   }   try {    in1.close();   } catch (IOException e) {    e.printStackTrace();   }  }/*字符流复制的图片没法打开,字节流可以。 *///////  Reader in = null;////  Writer out = null;////////  try {////   in = new BufferedReader(new FileReader(f));////   out = new BufferedWriter(new FileWriter(t));////   int result = 0;////   while ((result = in.read()) != -1){////    out.write(result);////   }////   System.out.println("文件复制成功!");////  } catch (Exception e) {////   System.out.println("文件复制失败!");////   e.printStackTrace();////   /*////   一定会执行的代码需要放在finally{}中,比如关流////   关流操作是有顺序的,如果有多个流,先创建的后关闭////   多条关流语句需要各自try-catch////    */////  } finally {////   try {////    out.flush();////    out.close();////   } catch (IOException e) {////    e.printStackTrace();////   }////   try {////    in.close();////   } catch (IOException e) {////    e.printStackTrace();////   }////  } }}

总结:

​ 字符流只能复制文本文件,复制的图片,视频尽管可以复制,但会造成文件损坏,

而字节流可以实现完美的复制,不会损坏文件,字节流更接近底层。

测速

package com.cnblogs.api;import java.io.*;/*测试速度,用136M的视频文件来做复制粘贴实验 */public class TestSpeed { public static void main(String[] args) {//  method1();//花费时间:429937//  method2();//花费时间:4308//  method3();//花费时间:12858  method4();//花费时间:8245//  method5();//花费时间:1218 } private static void method5() {  //测试BufferedInputStream和BufferedOutputStream的速度 加上"车"  long start = System.currentTimeMillis();  InputStream in1 = null;  OutputStream out1 = null;  try {   in1 =new BufferedInputStream(new FileInputStream("E:\\1.wmv")) ;   out1 =new BufferedOutputStream(new FileOutputStream("E:\\study\\1.wmv")) ;   int result;   byte[] car = new byte[1024*1024*1024];   while((result = in1.read(car)) != -1){    out1.write(result);   }  } catch (Exception e) {   e.printStackTrace();  } finally {   try {    out1.close();   } catch (IOException e) {    e.printStackTrace();   }   try {    in1.close();   } catch (IOException e) {    e.printStackTrace();   }  }  long end = System.currentTimeMillis();  System.out.println("花费时间:" + (end - start)); } private static void method4() {  //测试BufferedReader和BufferedWriter的速度  long start = System.currentTimeMillis();  Reader in1 = null;  Writer out1 = null;  try {   in1 =new BufferedReader(new FileReader("E:\\1.wmv"));   out1 =new BufferedWriter(new FileWriter("E:\\study\\1.wmv"));   int result;   while((result = in1.read()) != -1){    out1.write(result);   }  } catch (Exception e) {   e.printStackTrace();  } finally {   try {    out1.close();   } catch (IOException e) {    e.printStackTrace();   }   try {    in1.close();   } catch (IOException e) {    e.printStackTrace();   }  }  long end = System.currentTimeMillis();  System.out.println("花费时间:" + (end - start)); } private static void method3() {  //测试FileReader和FileWriter的速度  long start = System.currentTimeMillis();  Reader in1 = null;  Writer out1 = null;  try {   in1 = new FileReader("E:\\1.wmv") ;   out1 = new FileWriter("E:\\study\\1.wmv") ;   int result;   while((result = in1.read()) != -1){    out1.write(result);   }  } catch (Exception e) {   e.printStackTrace();  } finally {   try {    out1.close();   } catch (IOException e) {    e.printStackTrace();   }   try {    in1.close();   } catch (IOException e) {    e.printStackTrace();   }  }  long end = System.currentTimeMillis();  System.out.println("花费时间:" + (end - start)); } private static void method2() {  //测试Buffered......

原文转载:http://www.shaoqun.com/a/884615.html

跨境电商:https://www.ikjzd.com/

easy buy:https://www.ikjzd.com/w/2162

ryder:https://www.ikjzd.com/w/1264.html

feedly:https://www.ikjzd.com/w/754


Java字节流和字符流的复制案例及测速案例packagecom.cnblogs;importjava.io.*;importjava.util.Scanner;publicclassTestCopyFile{publicstaticvoidmain(String[]args){System.out.println("请输入您要复制的源文件路径:");Stringf=newSca
easy buy:https://www.ikjzd.com/w/2162
bsci 认证:https://www.ikjzd.com/w/2339
丰趣海淘:https://www.ikjzd.com/w/1716
2021最新护士节优秀演讲稿范文:http://www.30bags.com/a/430905.html
2021最新九寨沟门票优惠政策:http://www.30bags.com/a/412728.html
2021最新丽江到虎跳峡游玩全攻略:http://www.30bags.com/a/415866.html
2021最新三亚自由行攻略大全 三亚自助游攻略:http://www.30bags.com/a/420769.html
宝宝我们换个姿势继续 一个吃奶两个㖭下面3pp:http://lady.shaoqun.com/a/248203.html
女人在外面和人玩,身体会有这三种现象。一个必须抓一个!:http://lady.shaoqun.com/a/424228.html
女人一旦偷了人,就逃不过这四种变态行为,也无法"假装"!:http://lady.shaoqun.com/a/424229.html
当一个男人爱一个女人爱到极致,他会有生理反应:http://lady.shaoqun.com/a/424230.html
一个女人,一旦她偷了人,就会有这些表现,她会担心:http://lady.shaoqun.com/a/424231.html

No comments:

Post a Comment