zoukankan      html  css  js  c++  java
  • 文件拷贝代码模型

    采用边读边写的模式,即:一部分一部分读取数据,而后一部分一部分进行内容的保存。 由于此时要拷贝的可能是二进制文件,所以使用字节流操作会更加的合适。

    设置源文件,和拷贝文件地址:

    代码:

     1 package cn.demo;
     2 
     3 import java.io.File;
     4 import java.io.FileInputStream;
     5 import java.io.InputStream;
     6 import java.io.OutputStream;
     7 import java.io.FileOutputStream;
     8 public class Test {
     9     public static void main(String[] args) throws Exception {
    10         if(args.length != 2){
    11             System.out.println("对不起,执行错误");
    12             System.exit(1);
    13         }
    14         System.out.println("源路径"+ args[0]);
    15         System.out.println("源路径"+ args[1]);
    16         File inFile = new File(args[0]);//定义源文件
    17         if (!inFile.exists()){
    18             System.out.println("源拷贝文件不存在");
    19             System.exit(1);
    20         }
    21         File outFile = new File(args[1]);
    22         copy (inFile,outFile);
    23     }
    24     public static boolean copy(File intFile,File outFile) throws Exception{
    25         InputStream input = null;//实现输入数据
    26         OutputStream output = null;//实现输出数据
    27         try{
    28             long start = System.currentTimeMillis();//考虑目标文件生成问题
    29             if(!outFile.getParentFile().exists()){
    30                 outFile.getParentFile().mkdir();
    31             }
    32             byte data[] = new byte [2048];
    33             input = new FileInputStream(intFile);
    34             output = new FileOutputStream(outFile);
    35             int temp =0;             //保存没次读取进来的数据
    36             while((temp = input.read(data)) != -1){
    37                 output.write(data,0,temp);
    38             }
    39             long end =System.currentTimeMillis();
    40             System.out.println("花费时间:" + (end-start));
    41             return true;
    42         }catch(Exception e){
    43             throw e;
    44         }finally{
    45             if(input != null){
    46                 input.close();
    47             }
    48             if(output != null){
    49                 output.close();
    50             }
    51         }
    52     }
    53 }

    结果:花费时间:599

    以后的文件上传处理都采用此类模式完成。

  • 相关阅读:
    【Demo】QQ,github,微博第三方社交登录
    crontab执行时间和系统时间不一致
    CDN服务技术架构图
    【php】命名空间 和 自动加载的关系
    【运维工具】Git代码发布系统
    【ipv6惹的祸】curl 超时
    MySQL:动态开启慢查询日志(Slow Query Log)
    Virtualbox 虚拟机支持硬件摄像头
    网页取消快照、禁止抓取等meta标签功能
    ajax 跨域
  • 原文地址:https://www.cnblogs.com/liyang31/p/5808452.html
Copyright © 2011-2022 走看看