扣丁学堂Java培训之复制文件常用三种方法详解

2019-03-05 14:00:44 1638浏览

今天扣丁学堂Java培训老师为大家分享一篇关于Java复制文件常用三种方法的详细介绍,希望对同学们学习Java开发有所帮助,下面我们一起来看一下吧。



复制文件的三种方法:

1、Files.copy(path,newFileOutputStream(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培训之复制文件常用三种方法详解的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,想要了解更多关于Java开发方面内容的小伙伴,请关注扣丁学堂Java培训官网、微信等平台,扣学堂IT职业在线学习教育平有专业的Java讲师为您指导,此外扣丁学堂老师精心推出的Java视频教程定能让你快速掌握Java从入门到精通开发实战技能。扣丁学堂Java技术交流群:670348138。


扣丁学堂微信公众号


【关注微信公众号获取更多学习资料】


查看更多关于“Java开发资讯”的相关文章>>

标签: Java培训 Java视频教程 Java多线程 Java面试题 Java学习视频 Java开发

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号