• 复制文件


    步骤:

      (1) 要复制文件,首先得先要有文件;

      (2) 然后把文件里面的内容读取到输入流中;

      (3) 再把输入流中的内容写到输出流中;

      (4) 再从输出流中写入到目的文件中;

      (5) 最后牢记要关闭流通道。

    ① 当文件得大小超过 int 时,应该分开一部分一部分的传,同时传时会溢出,用byte数组当做缓冲区。注意关闭流的顺序。

     1 package copy;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileNotFoundException;
     6 import java.io.FileOutputStream;
     7 import java.io.IOException;
     8 import java.io.InputStream;
     9 import java.io.OutputStream;
    10 
    11 public class Test1 {
    12 
    13     public static void main(String[] args) {
    14         // TODO Auto-generated method stub
    15         File from = new File("D:/安装包/java/eclipse-jee-oxygen-2-win32-x86_64.zip");
    16         File to = new File("D:/"+from.getName());
    17         try {
    18             InputStream is = new FileInputStream(from);
    19             OutputStream os = new FileOutputStream(to,true);
    20             byte[] b = new byte[1024];
    21             int i =is.read(b);
    22             while(i!=-1) {
    23                 os.write(b, 0, i);
    24                 i=is.read(b);
    25                 System.out.println(i);
    26             }
    27             os.close();//先关闭输出流
    28             is.close();//再关闭输入流
    29         } catch (FileNotFoundException e) {
    30             // TODO Auto-generated catch block
    31             e.printStackTrace();
    32         } catch (IOException e) {
    33             // TODO Auto-generated catch block
    34             e.printStackTrace();
    35         }
    36         System.out.println("复制完成");
    37     }
    38 }

    ②当文件大小没有超过 int 时,可以把文件的大小设置为数组的大小。注意关闭流的顺序。

     1 package copy;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.FileNotFoundException;
     6 import java.io.FileOutputStream;
     7 import java.io.IOException;
     8 import java.io.InputStream;
     9 import java.io.OutputStream;
    10 
    11 public class Test0 {
    12 
    13     public static void main(String[] args) {
    14         // TODO Auto-generated method stub
    15         File from = new File("D:/东软实训/面试题目/Java面试宝典.doc");
    16         File to = new File("D:/"+from.getName());
    17         try {
    18             /*读源文件*/
    19             InputStream is = new FileInputStream(from);
    20             byte[] b = new byte[(int) from.length()];
    21             is.read(b);
    22             is.close();//读完后,输入流此时就可以关闭了
    23             /*写到目标文件*/
    24             OutputStream os = new FileOutputStream(to);
    25             os.write(b);
    26             os.close();//关闭输出流
    27             System.out.println("复制完成");
    28         } catch (FileNotFoundException e) {
    29             // TODO Auto-generated catch block
    30             e.printStackTrace();
    31         } catch (IOException e) {
    32             // TODO Auto-generated catch block
    33             e.printStackTrace();
    34         }
    35     }
    36 }

    若有错误之处,欢迎指正。谢谢!

  • 相关阅读:
    运维与自动化系列①运维与自动化概述
    Git系列②之部署企业级开源仓库gitlab服务器
    Git系列①之仓库管理互联网托管平台github.com的使用
    win10安装MarkdownPad 2报错This view has crashed的处理及md简单语法
    fpm定制化RPM包之nginx rpm包的制作
    mysql管理工具percona-toolkit-3简单使用介绍
    生产环境elasticsearch5.0报错IllegalArgumentException: number of documents in the index cannot exceed 2147483519的处理
    web缓存服务器varnish-4.1.6的部署及配置详解
    elasticsearch5.0.1集群排错的几个思路总结
    解决tomcat报错javax.imageio.IIOException: Can't create output stream!
  • 原文地址:https://www.cnblogs.com/hong-yu0415/p/9146421.html
Copyright © 2020-2023  润新知