package com.io;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 文件复制的实现
* @author ganhang
*
*/
public class HomeWork {
/**
*
* @param src 源文件的路径
* @param desc 目标文或文件夹的路径
* @throws FileNotFoundException
*/
public static void copyfile(File src, File desc)throws FileNotFoundException {
//判断文件路径是否正确是否是文件和文件夹
if (src == null || desc == null || src.isDirectory()||desc.isFile()) {
throw new FileNotFoundException("文件参数错误!");//抛出异常
} else {
if (!desc.exists())desc.mkdirs();//如果目标地址没有文件夹则创建文件夹
File file=new File(desc.getPath()+File.separator+src.getName());//创建目标文件路径和文件名的对象
try {
file.createNewFile();//创建文件
} catch (IOException e1) {
e1.printStackTrace();
}
FileInputStream fis = new FileInputStream(src);//文件读入流
FileOutputStream fos = new FileOutputStream(file,true);//文件写入流
BufferedInputStream bis=new BufferedInputStream(fis);//缓冲流
BufferedOutputStream bos=new BufferedOutputStream(fos);
byte[] b = new byte[210000000];//数据中转空间
try {
int len=-1;
while((len=bis.read(b))!=-1){//从源地址循环读入数据
bos.write(b, 0, len);//循环写入目的地址文件
}
fis.close();//关闭流
fos.close();
System.out.println(new SimpleDateFormat("HH:mm:ss").format(new Date())+"复制成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
//测试
public static void main(String[] args) {
File file1 = new File("f:\\电影\\万万没想到.mp4");//源文件必须是文件
File file2 = new File("f:\\视频\\");//目标文件必须是文件夹路径
try {
System.out.println(new SimpleDateFormat("HH:mm:ss").format(new Date()));
copyfile(file1, file2);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

java学习之实现文件的复制的更多相关文章

  1. Java学习-043-获取文件在目录中的路径

    我们在日常的电脑使用中,经常需要在当前目录或当期目录及其子目录中查找文件,并获取相应的文件路径名.在我们的自动化测试中,也经常需要确认文件在目录中是否成功生成或已存在,因而我写了一个小方法来实现. 获 ...

  2. Java学习-014-文本文件写入实例源代码(两种写入方式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 第一种:文本文件写入,若文件存在则删除原文件,并重新创建文件.源代码如下所示: /** * @fun ...

  3. Java学习-013-文本文件读取实例源代码(两种数据返回格式)

    此文源码主要为应用 Java 读取文本文件内容实例的源代码.若有不足之处,敬请大神指正,不胜感激! 1.读取的文本文件内容以一维数组[LinkedList<String>]的形式返回,源代 ...

  4. Java学习-011-创建文件实例及源代码

    此文源码主要为应用 Java 创建文件的源代码.若有不足之处,敬请大神指正,不胜感激! 创建文件的源代码如下所示: /** * @function 文件操作:创建文件.若文件不存在,则直接创建文件:若 ...

  5. Java学习-010-创建文件夹源代码

    此文源码主要为应用 Java 创建文件目录的源码.若有不足之处,敬请大神指正,不胜感激! 创建文件夹源代码如下所示: /** * @function 文件操作:创建文件夹.若文件夹不存在,则级联创建文 ...

  6. java学习之IO文件分割

    package om.gh.homework; import java.io.*; /** * 实现分割文件; * @param file */ public class HomeWork { /** ...

  7. 【java学习笔记】文件读写(IO流)

    1.字节流 FileInputStream.FileOutputStream ①FileInputStream import java.io.FileInputStream; public class ...

  8. java代码---I/O文件内容复制

    总结:主要是弄清输入流,输出流 输入流和输出流都是针对程序而言,把文件内容读取到程序是输入流 从程序把内容写入文件是输出流 package com.a.b; import java.io.*; imp ...

  9. Java学习之==>IO文件操作体系

    一.概述 在整个 Java.io 中最重要的就是5个类和一个接口.5个类指的是 File.InputStream.OutputStream.Reader.Writer,一个接口指的是Serializa ...

随机推荐

  1. POJ 3169 Layout (图论-差分约束)

    Layout Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6574   Accepted: 3177 Descriptio ...

  2. python 内部函数,以及lambda,filter,map等内置函数

    #!/usr/bin/python #encoding=utf-8 def back(): return 1,2, "xxx" #python 可变参数 def test(*par ...

  3. git 使用笔记(三)-分支的使用

    简单介绍 之前说过,每次修改之后,Git 并不是保存这些修改之后的差异变化,实际上就像一个照相机一样,将修改后的文件拍下作为文件快照,记录在一个微型的文件系统中.在 Git 中提交时,会保存一个提交对 ...

  4. BZOJ 2751: [HAOI2012]容易题(easy)( )

    有限制的最多就K个, 所以我们处理一下这K个就行了. 其他可以任选, 贡献都是∑i (1≤i≤N), 用快速幂. ------------------------------------------- ...

  5. UVa 12299 RMQ with Shifts(线段树)

    线段树,没了.. ----------------------------------------------------------------------------------------- # ...

  6. python 冒泡和快排,不多说【无聊】

    #-*-coding:utf8-*- import random a=[] b=[] def init_array(): for i in range(10000): v = random.randi ...

  7. ffmpeg 命令详解

    常用视频命令 //转码(并添加黑边) ffmpeg -ss start_time -i input.mp4 -t total_duration -vcodec copy/h264/... -acode ...

  8. EventStore的设计思路

    EventStore的设计思路 最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event ...

  9. Qt实现16进制unicode转utf-8以及国际音标编码问题

    由于项目需要,需要对网络资源进行解码.遇到编码问题.研究了下基本编码原理.于是有了下面两个通用代码 1. 16进制unicode转换为utf-8中文显示 QString unicodeToUtf_8( ...

  10. Angulajs 表单的ng-model绑定

    1.对于文本框,只需设置 ng-model 属性就可以实现双向绑定,如: <input type="text" class="form-control" ...