代码实现复制文件

/*

* 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad。
 * <复制前改名>
 */
public class CopyFolder {
public static void main(String[] args) throws IOException {
// 封装d:\\java这个目录
File srcFile = new File("d:\\hellodong");

// 获取该目录所有满足条件的File[]数组。
File[] fileArray = srcFile.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
System.out.println(dir+"---"+name);
return new File(dir, name).isFile() && name.endsWith(".java");
}
});

//判断是否存在目的地目录,如果没有,就创建。
File destFile = new File("d:\\jad");
if(!destFile.exists()){
destFile.mkdirs();
}

// 遍历File[]数组,获取到每一个File。
for (File file : fileArray) {
// file  -- d:\\java\\Constant.java -- 数据源
//最终的结果:  d:\\jad\\Constant.jad -- 目的地
//复制前改名
String name = file.getName(); //Constant.java
String newName = name.replace(".java", ".jad");//Constant.jad
File newFile = new File(destFile,newName);//d:\\jad\\Constant.jad

//复制文件
BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(newFile));

String line = null;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}

bw.close();
br.close();
}
}
}

/*
 * 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad。
 * <复制完之后改名>
 */
public class CopyFolder2 {
public static void main(String[] args) throws IOException {
File srcFile = new File("d:\\java");
File[] fileArray = srcFile.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir, name).isFile() && name.endsWith(".java");
}
});
File destFile = new File("d:\\jad");
if (!destFile.exists()) {
destFile.mkdir();
}
for (File file : fileArray) {
String name = file.getName();
File newFile = new File(destFile, name);

BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(newFile));

String line = null;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
File[] destFileArray = destFile.listFiles();
for(File file : destFileArray){
String name = file.getName(); 
String newName = name.replace(".java", ".jad");
File newFile = new File(destFile,newName);
file.renameTo(newFile);
}
}

}

二进制流的复制

复制图片:把项目路径下的mn.jpg复制到d:\\mn.jpg

分析:

A:用字符流

B:用字节流

二进制流数据:图片,视频,音频等。

由于二进制的合并为字符,在我们使用的编码表中没有对应的数据,那么,将来在写回去的时候,就会有数据的丢失。

所以,二进制流数据只能使用字节流进行操作。

public class CopyImage {
public static void main(String[] args) throws IOException {
// method1();
method2();
}
// 用字节流--一次一个字节数组
private static void method2() throws IOException {
// 封装数据源和目的地
FileInputStream fis = new FileInputStream("mn.jpg");
FileOutputStream fos = new FileOutputStream("d:\\mn.jpg", true);

// 读写
byte[] bys = new byte[1024];
int len = 0;
while ((len = fis.read(bys)) != -1) {
fos.write(bys, 0, len);
}
// 释放资源
fos.close();
fis.close();
}
// 用字符流--一次一个字符
private static void method1() throws IOException {
// 封装数据源和目的地
FileReader fr = new FileReader("mn.jpg");
FileWriter fw = new FileWriter("d:\\mn.jpg");
// 基本读写
int ch = 0;
while ((ch = fr.read()) != -1) {
fw.write(ch);
// fw.flush();
}
// 释放资源
fw.close();
fr.close();
}
}

复制MP3,加入异常处理标准格式。
 
 数据源:
 d:\\Pink.mp3
 目的地:
 copy.mp3

public class CopyMP3 {
public static void main(String[] args) {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream("d:\\Pink.mp3"));
bos = new BufferedOutputStream(new FileOutputStream("copy.mp3"));
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

Java实现文件复制相关推荐

  1. java直接调用复制文件,java中文件复制的4种方式,java文件的复制

    java中文件复制的4种方式,java文件的复制 今天一个同事问我文件复制的问题,他一个100M的文件复制的指定目录下竟然成了1G多,吓我一跳,后来看了他的代码发现是自己通过字节流复制的,定义的字节数 ...

  2. java io 文件复制_实例讲述Java IO文件复制

    前言:IO流主要分为两大类,分别是字节流与字符流 注意: 1.音频文件.图片.视频(范围广),就用字节流 2.只涉及到文本的,就用字符流 使用字节流复制文本内容(其他文件也可以) 代码如下: impo ...

  3. Java实现文件复制的四种方式

    背景:有很多的Java初学者对于文件复制的操作总是搞不懂,下面我将用4中方式实现指定文件的复制. 实现方式一:使用FileInputStream/FileOutputStream字节流进行文件的复制操 ...

  4. Java中文件复制的一个汇总

    Java文件复制(包括NIO) 我们首先定义一个拷贝接口: public interface FileCopyRunner {void copyFile(File source, File targe ...

  5. java中怎么剪切文件_java中实现文件复制、剪切和删除

    import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...

  6. java文件复制速度_java中文件复制得速度测试

    //需要将apache开发的两个插件包拷到lib目录下:commons-fileupload-1.2.2.jar  commons-io-2.0.1.jar package com.nay.servl ...

  7. 4种Java文件复制的方法

    1.Java 复制文件 - 流 这是java中文件复制的常规方式.在这里,我们创建两个文件 - 源和目标.然后我们从源创建InputStream并使用OutputStream将其写入目标文件进行 ja ...

  8. 缓冲流效率测试_文件复制

    (1)使用字节输入流对象FileInputStream.输出流对象FileOutputStream测试 package com.IOAndProperties.CopyFile;import java ...

  9. Java学习总结:44(文件复制案例)

    案例:文件复制(针对InputStream和OutputStream的操作应用) 流程图(比较复杂我就不敲了,直接拍出来) 例:实现文件复制操作 package Project.Study.FileC ...

最新文章

  1. mysql ssd 性能测试 写入_MySQL服务器的SSD性能问题分析和测试详解
  2. Java中 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念
  3. python之发送HTML内容的邮件
  4. 我只是不甘心-------Day51
  5. spring cloud netflix
  6. IE Firefox通用DOM
  7. echarts 折线图 设置y轴最小刻度_【硬货】vue全家桶+Echarts+百度地图,搭建数据可视化系统...
  8. ABP理论学习之Web API控制器(新增)
  9. 搭建nfs,实现linux之间共享存储
  10. npm上传自定义vue组件入门
  11. ci 页面php代码,Cicool v3.1.0 - PHP页面、表单、API、CRUD生成器
  12. es 使用ik停词_ES使用IK分词器
  13. 肩周炎的治疗方法哪个最有效
  14. Rstudio 设置工作路径
  15. MySQL逻辑架构及工作流程
  16. Drools——什么是规则
  17. 二选一多路器Verilog
  18. Xcode升级以后构建ios出现 “unable to find utility PackageApplication, not a developer tool or in PATH”的报错解决
  19. 武汉烽火通信软件工程师-Android面试经历
  20. CSS奇思妙想—这里是CSS创造的世界!

热门文章

  1. python中的类的属性是什么_python中类属性和数据属性的解释
  2. mysql前两个月_MySQL数据库表始终保持最近两个月的记录
  3. MySQL(一)存储引擎
  4. c语言中根据数据的组织形式 把文件分为,根据数据的组织形式,C中将文件分为______________和____________.._简答题试题答案...
  5. 用java解决约瑟夫循环问题,Java实现循环列表解决约瑟夫环问题
  6. OpenShift 4 Hands-on Lab (5) - 用Build、Builder Trigger、Webhook构建和更新镜像
  7. Python元组,列表,解构和循环
  8. 使用DocFx生成文档网站并将其发布到GitHub Pages
  9. GitHub 公开 B 站寄来的 DMCA 删除通知
  10. pbs分解_产品分解结构