zoukankan      html  css  js  c++  java
  • 复制文件

    步骤:

      (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 }

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

  • 相关阅读:
    datatables ajax异步分页
    redis实现消息发布/订阅
    使用Tomcat+Redis来实现集群部署中的Session共享问题
    工具:从一个文件夹中复制jar到另一个文件夹中
    CentOS配置上网
    热力图与百度地图扩展实例
    【转】JavaWeb编码之get方式中文乱码问题
    数字转换大写核心类
    详说 Navicat for MySQL 快捷键
    MYBATIS常用的sql事例
  • 原文地址:https://www.cnblogs.com/hong-yu0415/p/9146421.html
Copyright © 2011-2022 走看看