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 ...
随机推荐
- input光标错位
文档结构 <div class="noteWrap"> <input type="text" placeholder="写留言&qu ...
- 唱吧基于 MaxCompute 的大数据之路
使用 MaxCompute之前,唱吧使用自建体系来存储处理各端收集来的日志数据,包括请求访问记录.埋点数据.服务器业务数据等.初期这套基于开源组件的体系有力支撑了数据统计.业务报表.风控等业务需求.但 ...
- uva 11300 分金币(利用绝对值加和进行求出最小值)
//qq 767039957 welcome #include<cstdio> #include<algorithm> #include<vector> #incl ...
- oracle习题练习-表空间-用户-表-约束
题一 1. 创建名字为hy_tablespace的表空间,默认大小为10M;@@ 2. 创建一个用户,用户名以自己名字命名,并指定命名空间为hy_tablespace;@@@@ ...
- LINUX配置文件介绍
每个 Linux 程序都是一个可执行文件,它含有操作码列表,CPU 将执行这些操作码来完成特定的操作.例如,ls 命令是由 /bin/ls 文件提供的,该文件含有机器指令的列表,在屏幕上显示当前目录中 ...
- Leetcode653.Two Sum IV - Input is a BST两数之和4-输入BST
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true. struct TreeNode { int val; struct TreeNode * ...
- python 从数据库取回来的数据中文显示为乱码
问题:从数据库取回来的数据,中文显示为乱码. 解决办法: 此处要指定charset为utf-8(一般数据库编码都是utf8),否则读取出的中文会乱码
- C#中抽象方法与虚方法的区别(转)
C#中抽象方法与虚方法的区别 一.抽象方法:只在抽象类中定义,方法修饰符不能使用private,virtual,static. 抽象方法如下示: public abstract class Peo ...
- 机器学习中的那些树——决策树(三、CART 树)
前言 距上篇文章已经过了9个月 orz..趁着期末复习,把博客补一补.. 在前面的文章中介绍了决策树的 ID3,C4.5 算法.我们知道了 ID3 算法是基于各节点的信息增益的大小 \(\operat ...
- twisted(转)
reactor.protocol 这两个类都在 twisted.internet 命名空间中 reactor对象是Twisted编程当中的第一步,它就是一个反应器,专门负责与服务端的连接以及监听与服务 ...