IO流实现文件及文件夹的复制
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流实现文件及文件夹的复制的更多相关文章
- IO流的应用_Copy文件
IO流的应用_Copy文件 (1) import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...
- io流(io流的引入与文件字节流)
io流的引入与文件字节流 io流:就是一根吸管,插入后,可以操作目标文件 io流的分类: 按方向:输入,输出 按大小:字节,字符 按处理方式: 处理流:"管套着管" --- 流结合 ...
- IO流——File类(文件流类)
java语言的输入输出操作是借助于输入输出包java.io来实现的,按传输方向分为输入流与输出流,从外设传递到应用程序的流为输入流,将数据从应用程序输入到外设的流为输出流. File类的构造方法: 1 ...
- 07 IO流(四)——文件字节流 FileInputStream/FileOutputStream与文件的拷贝
两个类的简述 专门用来对文件进行读写的类. 父类是InputStream.OutputStream 文件读入细节 FileOutputStream流的构造方法:new FileOutputStream ...
- IO流实现GBK写入文件然后转换UTF-8
public static void main(String[] args) throws IOException { File file = new File("olol\\a.txt&q ...
- IO流实现简单的文件的剪切
思路: 判断 即将 复制的文件是文件夹还是文件 遍历需要复制的源文件夹 如果是文件夹,就通过流创建一个同样的子文件夹 如果是文件,就复制过去 接下来上代码 public class Demo1 { p ...
- 【IO流】java中文件路径(相对路径、绝对路径)相关类及方法
原文链接:https://blog.csdn.net/Activity_Time/article/details/98034409 1. URL 菜鸟教程:Java URL处理 通常推荐对http等协 ...
- IO流读取和写入文件
package com.xmlmysql.demo.config; import java.io.BufferedReader; import java.io.BufferedWriter; impo ...
- 使用Java中的IO流,把A文件里的内容输入到B文件中
我们先创建两个文本文件,out.txt和in.txt,在out.txt中输入"Hello World",然后使用FileInputStream把字符串读取出来,再使用FileOut ...
- 08 IO流(五)——文件字符流FileWriter/FileReader
对比文件字节流的优势 对于文本文件的数据传输,使用文件字符流,就不用考虑编码转码的问题. 对比文件字节流,在方法上的不同有哪些 文件字符流有append方法: Writer append(char c ...
随机推荐
- 标记扩展和 WPF XAML
本主题介绍 XAML 的标记扩展概念,包括其语法规则.用途以及底层的类对象模型. 标记扩展是 XAML 语言以及 XAML 服务的 .NET 实现的常规功能. 本主题专门详细论述了用于 WPF X ...
- eclipse svn提交忽略文件及文件夹,ignore设置无效..
如果之前提交过此文件,就不能设置忽略该文件了.所以第一次提交的时候要搞清楚再提交. [亲测,的确如此,用 Windows -> Preferences -> Team -> Igno ...
- day38 06-MyEclipse配置Schema约束
- Leetcode575.Distribute Candies分糖果
给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果.你需要把这些糖果平均分给一个弟弟和一个妹妹.返回妹妹可以获得的最大糖果的种类数. 示例 1: 输入: candies ...
- Oracle启动和禁用约束及删除违反约束的记录
一.禁用约束 alter table table_name disable novalidate constraint constraint_name 二.批量导入数据 三.在开启约束之前一定要检查违 ...
- 【python之路9】类型定义与转换
一.整型(int),int的作用 1.创建int类型并赋值 n = 10 或者 n = int(10) #只要是类名加括号,都会去执行类中的 __init__()方法 n = 10,实际内部会去执 ...
- CSS Tools: Reset CSS
样式初始化 /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ ...
- 图文结合深入理解 JS 中的 this 值
图文结合深入理解 JS 中的 this 值 在 JS 中最常见的莫过于函数了,在函数(方法)中 this 的出现频率特别高,那么 this 到底是什么呢,今天就和大家一起学习总结一下 JS 中的 th ...
- freemarker 取值(插值)(转)
Java数据模型 1)基本数据类型取值 八种基本的java类型:byte.short.int.long:float,double:char:boolean 对应的封装类型:Byte.Short.Int ...
- 基于mcp940反编译Minecraft源代码
引言 Minecraft中文叫"我的世界",没怎么深入玩过,来试试把它源代码反编译出来吧. 参考教程: https://minecraft.gamepedia.com/Mods/C ...