Java复制文件常用的三种方法

 更新时间:2019年03月05日 09:03:48   作者:jitaiLin  
今天小编就为大家分享一篇关于Java复制文件常用的三种方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

复制文件的三种方法:

1、Files.copy(path, new FileOutputStream(dest));。

2、利用字节流。

3、利用字符流。

代码实现如下:

package com.tiger.io;
import java.io.*;
import java.nio.file.*;
/**
 * 复制文件的三种方式
 * @author tiger
 * @Date 
 */
public class CopyFile {
 public static void main(String[] args) throws IOException, IOException {
 Path path = Paths.get("E:","17-06-15-am1.avi");
 String dest = "E:\\Copy电影.avi";
 copy01(path, dest);
 String src = "E:\\[Java典型应用彻查1000例:Java入门].pdf";
 String dest1 = "E:\\CopyFile.pdf";
 copy02(src, dest1);
 //copy03(src, dest1);
 }
 
 /**
 * 利用Files工具copy
 * @param path
 * @param dest
 * @throws IOException
 * @throws IOException
 */
 public static void copy01(Path path,String dest) throws IOException, IOException{
 //利用Files工具类对文件进行复制,简化编程,只需要写一句。
 Files.copy(path, new FileOutputStream(dest));
 }
 
 /**
 * 利用字节流复制
 * @param src
 * @param dest
 * @throws IOException
 */
 public static void copy02(String src,String dest) throws IOException{
 InputStream is = new BufferedInputStream(new FileInputStream(src));
 OutputStream os = new BufferedOutputStream(new FileOutputStream(dest));
 //文件拷贝u,-- 循环+读取+写出
 byte[] b = new byte[10];//缓冲大小
 int len = 0;//接收长度
 //读取文件
 while (-1!=(len = is.read(b))) {
  //读入多少,写出多少,直到读完为止。
  os.write(b,0,len);
 }
 //强制刷出数据
 os.flush();
 //关闭流,先开后关
 os.close();
 is.close();
 }
 
 /**
 * 字符流复制
 * @param src
 * @param dest
 * @throws IOException
 */
 public static void copy03(String src,String dest) throws IOException{
 //字符输入流
 BufferedReader reader = new BufferedReader(new FileReader(src));
 //字符输出流
 BufferedWriter writer = new BufferedWriter(new FileWriter(dest));
 char[] cbuf = new char[24];
 int len = 0;
 //边读入边写出
 while ((len = reader.read(cbuf)) != -1) {
  writer.write(cbuf, 0, len);
 }
 //关闭流
 writer.close();
 reader.close();
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Java HashMap详解及实现原理

    Java HashMap详解及实现原理

    Java HashMap是Java集合框架中最常用的实现Map接口的数据结构,它使用哈希表实现,允许null作为键和值,可以存储不同类型的键值对,在Java中,HashMap被广泛应用于各种场景,如缓存、数据库连接池、路由器等,文中有详细的代码示例,需要的朋友可以参考下
    2023-05-05
  • 详解java面试题中的i++和++i

    详解java面试题中的i++和++i

    这篇文章主要介绍了java面试题中的i++和++i的相关资料,需要的朋友可以参考下
    2018-03-03
  • springboot中使用ElasticSearch的详细教程

    springboot中使用ElasticSearch的详细教程

    这篇文章主要介绍了ElasticSearch在springboot中使用的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • Java的web开发中SSH框架的协作处理应用笔记

    Java的web开发中SSH框架的协作处理应用笔记

    这篇文章主要介绍了Java的web开发中SSH框架的协作处理应用笔记,SSH是指Struts和Spring以及Hibernate的框架搭配,需要的朋友可以参考下
    2015-12-12
  • Java 关键字 volatile 的理解与正确使用

    Java 关键字 volatile 的理解与正确使用

    本文主要介绍 volatile 的使用准则,以及使用过程中需注意的地方,感兴趣的朋友一起看看吧
    2017-06-06
  • 使用Jacoco获取 Java 程序的代码执行覆盖率的步骤详解

    使用Jacoco获取 Java 程序的代码执行覆盖率的步骤详解

    这篇文章主要介绍了使用Jacoco获取 Java 程序的代码执行覆盖率的步骤详解,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • Java异常处理try catch的基本使用

    Java异常处理try catch的基本使用

    大家好,本篇文章主要讲的是Java异常处理try catch的基本使用,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Java微服务实战项目尚融宝接口创建详解

    Java微服务实战项目尚融宝接口创建详解

    这篇文章主要介绍了Java微服务实战项目尚融宝的接口创建流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Spingmvc中的HandlerMapping剖析

    Spingmvc中的HandlerMapping剖析

    这篇文章主要介绍了Spingmvc中的HandlerMapping剖析,Spingmvc中的HandlerMapping负责解析请求URL,对应到Handler进行处理,这里的Handler一般为Controller里的一个方法method,也可以为servlet或者Controller等,需要的朋友可以参考下
    2023-09-09
  • SpringBoot 启动流程追踪方法分享

    SpringBoot 启动流程追踪方法分享

    这篇文章主要介绍了SpringBoot 启动流程追踪方法分享的相关资料,需要的朋友可以参考下
    2023-08-08

最新评论