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

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

  • 相关阅读:
    error in ./src/views/demo/ueditor.vue Module build failed: Error: Cannot find module 'node-sass' Require stack:
    Spring Cloud Stream 定时任务消息延迟队列
    项目结构介绍
    Java面试题
    SpringBoot中用SpringSecurity实现用户登录并返回其拥有哪些角色
    MySQL索引优化
    MySQL中的执行计划explain
    SpringBoot之单体应用
    SpringBoot之SSM多模块应用
    Spring-aop面向切面编程笔记
  • 原文地址:https://www.cnblogs.com/liyang31/p/5808452.html
Copyright © 2011-2022 走看看