IO.FileCopy

package com.newedu.jb.day20.io;

 

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

 

/**

 * 把当前项目目录下的hello.txt内容复制到当前项目目录下的b.txt中

 *

 * 程序分析:

 * 1:使用 InputStream 读 hello.txt 的内容 到一个数组中。

 * 2:将读取到数组,通过OutputStream 写入b.txt

 *

 *

 *

 *@author jerry

 *

 */

public class FileCopyDemo {

 

       publicstatic void main(String[] args) throws IOException {

 

              //流操作三步走:

              //第一步:创建流对象

              InputStreamis = new FileInputStream("hello.txt");

              OutputStreamos = new FileOutputStream("b.txt");

             

             

              //第二步:操作流对象,(读 or 写)

             

              inti = 0;

              while((i=is.read())!=-1){

                    

//                   System.out.println((char)i);

                     //输出 到输出流中

                     os.write(i);

              }

             

              //第三步:关闭流对象,输入输出流不分先后顺序

             

              is.close();

              os.close();

       }

 

}

package com.newedu.jb.day20.io;

 

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

 

/**

 * 四种复制文件的形式:

 * 1:基本字节流每次读写一个字节

 * 2:基本字节流每次读写一个字节数组

 * 3:缓冲字节流每次读写一个字节

 * 4:缓冲字节流每次读写一个字节数组

 *

 * 并且对比出那种方式最好?

 *

 * 结论:第四种最快,工作中建议使用第四种。

 *@author jerry

 *

 */

public class FileCopyDemo2 {

 

       publicstatic void main(String[] args) throws IOException {

             

              longstart = System.currentTimeMillis();

//            method1();//42416ms

//            method2();//105 ms

//            method3();//443 ms

              method4();//46  ms

             

              longend = System.currentTimeMillis();

             

              System.out.println("方法执行的时间:"+(end-start));

 

       }

      

       //1:基本字节流每次读写一个字节

       publicstatic void method1() throws IOException{

             

              //创建流对象

              InputStreamis = new FileInputStream("D:\\dd\\d1\\a.mp3");

              OutputStreamos = new FileOutputStream("D:\\dd\\d1\\copy1.mp3");

              //操作流对象

              inti = 0;

              while((i=is.read())!=-1){

                     os.write(i);

              }

             

              //关闭流

              is.close();

              os.close();

             

       }

       //2:基本字节流每次读写一个字节数组

       publicstatic void method2() throws IOException{

              //创建流对象

              InputStreamis = new FileInputStream("D:\\dd\\d1\\a.mp3");

              OutputStreamos = new FileOutputStream("D:\\dd\\d1\\copy2.mp3");

              //操作流对象

              byte[]b = new byte[1024];

             

              intlen = 0;

              while((len= is.read(b))!=-1){

                     os.write(b,0, len);

              }

              //关闭流

              is.close();

              os.close();

       }

       //3:缓冲字节流每次读写一个字节

       publicstatic void method3() throws IOException{

              //创建流对象

              InputStreamin = new FileInputStream("D:\\dd\\d1\\a.mp3");

              OutputStreamout = new FileOutputStream("D:\\dd\\d1\\copy3.mp3");

              BufferedInputStreambis = new BufferedInputStream(in);

              BufferedOutputStreambos = new BufferedOutputStream(out);

              //操作流对象

             

              inti = 0;

             

              while((i=bis.read())!=-1){

                     bos.write(i);

              }

             

              //关闭流

             

              bis.close();

              bos.close();

       }

       //4:缓冲字节流每次读写一个字节数组

       publicstatic void method4() throws IOException{

              //创建流对象

              InputStreamin = new FileInputStream("C:\\Program Files (x86)\\tlxsoft\\屏幕录像专家 共享版 V2016\\LS2\\01IO流-递归运算.avi");

              OutputStreamout = new FileOutputStream("D:\\dd\\d1\\copy5.avi");

              BufferedInputStreambis = new BufferedInputStream(in);

              BufferedOutputStreambos = new BufferedOutputStream(out);

              //操作流对象

              byte[]b = new byte[1024];

             

              intlen = 0;

              while((len= bis.read(b))!=-1){

                     bos.write(b,0, len);

              }

             

              //关闭流

              bis.close();

              bos.close();

       }

 

}

显示了如下,该怎么改进,写出完整代码:"C:\Program Files\Java\jdk1.8.0_202\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.2.3\lib\idea_rt.jar=61182:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_202\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_202\jre\lib\rt.jar;W:\dsb\out\production\dsb" FileCopy java.io.FileNotFoundException: sample.txt (系统找不到指定的文件。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at java.io.FileInputStream.<init>(FileInputStream.java:93) at FileCopy.main(FileCopy.java:6)
最新发布
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值