TestCopyDocuments.java

package com.sxt.parc;
/*
* 复制文件夹 包含文本 视频 音频 用字节流
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream; public class TestCopyDocuments {
public static void main(String[] args) throws Exception {
copyDocuments("G:\\source.txt","G:\\dest.txt");
} public static void copyDocuments(String SourcePath, String DestPath) throws Exception {
//读入文件到程序
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(SourcePath));
//写入数据到文件
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(DestPath));
byte[] b = new byte[1024];
int len = 0;
while((len = bis.read(b)) != -1){
bos.write(b, 0, len);
}
bis.close();
bos.close();
System.out.println("复制文件完成!");
}
}

TestCopyFiles2.java

package com.sxt.parc;
/*
* 文件夹以及文件的复制
*/
import java.io.File; public class TestCopyFiles2 {
public static void main(String[] args) throws Exception {
CopyFiles("G:\\source","G:\\dest");
System.out.println("*********复制完成**************");
} private static void CopyFiles(String sourcePath, String destPath) throws Exception {
//源路径
File file = new File(sourcePath);
// String name = file.getName();
// System.out.println(name);
//检查源路径是否正确
if(!file.exists()){
System.out.println("请检查您的源路径是否合法!");
} //目标路径
File file2 = new File(destPath);
//如果目标文件夹不存在则创建
if(!file2.exists()){
file2.mkdir();//当前目录创建
} // //列出源文件夹的文件和文件夹列表准备复制
// String[] list = file.list();//String类型
// for(String doc: list){
// System.out.println(doc);
// }
//列出源文件夹的文件和文件夹列表准备复制
File[] listFiles = file.listFiles();
for(File f :listFiles){
System.out.println(f.getName());
//如果是文件夹需要在目标文件夹下创建文件夹
if(f.isDirectory()){
//关键步骤:递归
//System.out.println(f+"--------->"+destPath+"\\"+f.getName());
CopyFiles(sourcePath+"\\"+f.getName(),destPath+"\\"+f.getName());
}
//如果不是文件夹直接复制
if(f.isFile()){
//关键步骤:递归
//System.out.println(f+"--------->"+destPath+"\\"+f.getName());
TestCopyDocuments.copyDocuments(sourcePath+"\\"+f.getName(),destPath+"\\"+f.getName());
}
}
}
}

IO流实现文件及文件夹的复制的更多相关文章

  1. IO流的应用_Copy文件

    IO流的应用_Copy文件 (1) import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

  2. io流(io流的引入与文件字节流)

    io流的引入与文件字节流 io流:就是一根吸管,插入后,可以操作目标文件 io流的分类: 按方向:输入,输出 按大小:字节,字符 按处理方式: 处理流:"管套着管" --- 流结合 ...

  3. IO流——File类(文件流类)

    java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流. File类的构造方法: 1 ...

  4. 07 IO流(四)——文件字节流 FileInputStream/FileOutputStream与文件的拷贝

    两个类的简述 专门用来对文件进行读写的类. 父类是InputStream.OutputStream 文件读入细节 FileOutputStream流的构造方法:new FileOutputStream ...

  5. IO流实现GBK写入文件然后转换UTF-8

    public static void main(String[] args) throws IOException { File file = new File("olol\\a.txt&q ...

  6. IO流实现简单的文件的剪切

    思路: 判断 即将 复制的文件是文件夹还是文件 遍历需要复制的源文件夹 如果是文件夹,就通过流创建一个同样的子文件夹 如果是文件,就复制过去 接下来上代码 public class Demo1 { p ...

  7. 【IO流】java中文件路径(相对路径、绝对路径)相关类及方法

    原文链接:https://blog.csdn.net/Activity_Time/article/details/98034409 1. URL 菜鸟教程:Java URL处理 通常推荐对http等协 ...

  8. IO流读取和写入文件

    package com.xmlmysql.demo.config; import java.io.BufferedReader; import java.io.BufferedWriter; impo ...

  9. 使用Java中的IO流,把A文件里的内容输入到B文件中

    我们先创建两个文本文件,out.txt和in.txt,在out.txt中输入"Hello World",然后使用FileInputStream把字符串读取出来,再使用FileOut ...

  10. 08 IO流(五)——文件字符流FileWriter/FileReader

    对比文件字节流的优势 对于文本文件的数据传输,使用文件字符流,就不用考虑编码转码的问题. 对比文件字节流,在方法上的不同有哪些 文件字符流有append方法: Writer append(char c ...

随机推荐

  1. 09安装运行redis-trib.rb所需的环境

    运行redis-trib.rb脚本配置Redis的cluster,需要安装ruby环境,这里采用源码安装: 1:下载源码包: https://cache.ruby-lang.org/pub/ruby/ ...

  2. CF 529B Group Photo 2 (online mirror version)

    传送门 解题思路 这道题要用到贪心的思路,首先要枚举一个h的最大值,之后check.如果这个东西的w[i]与h[i]都大于枚举的值就直接return false,如果w[i]比这个值小,h[i]比这个 ...

  3. JS数组的相关方法

    数组创建 JavaScript中创建数组有两种方式,第一种是使用 Array 构造函数: ? 1 2 3 var arr1 = new Array(); //创建一个空数组 var arr2 = ne ...

  4. Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---门面模式之HomeTheater[转]

      1unit uSubObject;   2   3interface   4   5type   6   7  { TAmplifier与TTuner,TCDPlayer,TDVDPlayer相互 ...

  5. WPF绘图性能问题

    代码: /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWind ...

  6. mysql过多sleep连接 修改timeout配置节约连接数 配置连接数

    数据库连接数量我设置了16384,最大值 ; 对于mysql8在设置一下这个 SET GLOBAL mysqlx_max_connections = ; 可以使用 命令查看自己的设置 SHOW var ...

  7. Node.js调试技巧

    1. console.log 跟前端调试相同,通过一步步打印相关变量进行代码调试 2. 使用Node.js内置的调试器 通过node debug xxx.js来进行调试: [root@~/wade/n ...

  8. 阿里云MaxCompute 2019-7月刊

    您好,MaxCompute 2019.7月刊为您带来7月产品.技术最新动态,欢迎阅读. 导读 [发布]7月产品重要发布 [资讯]7月重要资讯 [文档]7月重要文档更新推荐 [干货]7月精选技术文章推荐 ...

  9. locationManager 回调方法不调用问题?

    当locationManager都设置好了后开始定位服务后回调方法didUpdateToLocation不调用 [_locationManager setDelegate:self]; [_locat ...

  10. FastAdmin 安装后点登录没有反应怎么办?

    FastAdmin 安装后点登录没有反应怎么办? 很多小伙伴安装后点"登录"没有反应. 这个 URL 是对的,但是页面就是不改变. 如果这时候点击 URL 变了,那没有到登陆界面, ...