IO操作文件的复制与删除
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.junit.Test;
public class Delete {
/*
把d:/mywork复制成c:/mywork
写程序删除目录c:/mywork, delete()?
递归
*/
public void deleteDir(File dir){
//清空目录
System.out.println("删除目录:" + dir);
File[] listFiles = dir.listFiles();
for(int i = 0;i < listFiles.length;i++){
if(listFiles[i].isFile()){//测试此抽象路径名表示的文件是否是一个标准文件。
//如果是文件,直接删除
listFiles[i].delete();
}else if(listFiles[i].isDirectory()){//检查此路径是不是目录
deleteDir(listFiles[i]);
//因为子目录也是目录, 继续调用删除目录的方法即可
}
}
dir.delete();//只能删除空目录
}
@Test
public void delete(){
File file = new File("c:/xxxx");//此处填写文件名
deleteDir(file);
}
public void copyDir(File dir1,File dir2) throws IOException{
System.out.println("复制目录:" + dir1 + "到" + dir2);
//新建目标目录
dir2.mkdir();
//遍历源目录,把其中的内容复制到目标目录中
File[] listFiles = dir1.listFiles();// 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
for(int i = 0;i < listFiles.length;i++){
if(listFiles[i].isFile()){
//文件复制
File f1 = listFiles[i];
File f2 = new File(dir2.getAbsolutePath() + "/" + f1.getName());
copyFile(f1,f2);
}else if(listFiles[i].isDirectory()){
copyDir(listFiles[i],new File(dir2.getAbsolutePath() + "/" + listFiles[i].getName()));
}
}
}
private void copyFile(File f1,File f2) throws IOException{
FileInputStream fis = new FileInputStream(f1);
FileOutputStream fos = new FileOutputStream(f2);
byte[] buf = new byte[8192];
int realCount = fis.read(buf);
while (realCount != -1) {
fos.write(buf,0,realCount);
realCount = fis.read(buf);
}
fis.close();
fos.close();
}
@Test
public void copy(){
File dir1 = new File("路径");
File dir2 = new File("路径");
try {
copyDir(dir1, dir2);
} catch (Exception e) {
e.printStackTrace();
}
}
}
IO操作文件的复制与删除的更多相关文章
- java文件和文件夹复制、删除、移动操作
java文件和文件夹复制.删除.移动操作 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS ...
- java操作文件的创建、删除、遍历
java操作文件的创建.删除.遍历: package test; import java.io.File; import java.io.IOException; import java.util.A ...
- C++ 文件的复制、删除、重命名
一.文件的复制 #include <iostream>#include <fstream>using namespace std; int CopyFile(char *Sou ...
- Linux文件的复制、删除和移动命令
cp命令 功能:将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大. 语法:cp [选项] 源文件或目录 目标文件或目录 说明:该命令把指定的源文件复制到目 ...
- C#基础-文件夹复制与删除
代码来源:http://blog.163.com/u_tommy_520/blog/static/20406104420147493933662/ 最近做MVC网站时刚好用到,用以提供一个完整的文件夹 ...
- 16 IO操作文件读写
IO的分类 第一种分法: 1.输入流 2.输出流 第二种分法: 1.字节流 2.字符流 第三种分法: 1.节点流 2.处理流 I/O当中的核心类: InputStream <--------F ...
- C++操作文件行(读取,删除,修改指定行)
/******************************************************** Copyright (C), 2016-2018, FileName: main A ...
- HDFS操作--文件上传/创建/删除/查询文件信息
1.上传本地文件到HDFS //上传本地文件到HDFS public class CopyFile { public static void main(String[] args) { try { C ...
- shutil模块---文件,文件夹复制、删除、压缩等处理
shutil模块:高级的文件,文件夹,压缩包处理 拷贝内容 # shutil.copyfileobj(open('example.ini','r'),open('example.new','w')) ...
随机推荐
- 很好用的php在线调试工具
什么叫在线调试?就是在线上生产环境进行调试,假设有一天某个用户报某个页面某个数据怎么不对啊,看来线上出BUG了,于是你要迅速找出原因,首先看日志,可是悲剧的没有足够的日志让你确定线上BUG的原因,也许 ...
- 【大数据系列】hadoop核心组件-MapReduce
一.引入 hadoop的分布式计算框架(MapReduce是离线计算框架) 二.MapReduce设计理念 移动计算,而不是移动数据. Input HDFS先进行处理切成数据块(split) ma ...
- POJ 2386 Lake Counting(搜索联通块)
Lake Counting Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 48370 Accepted: 23775 Descr ...
- python 里面的%s和%r的区别
虽然这两个占位符(pytho里叫做格式符)用法相同,但是效果却是不一样的 %s是将变量传到str()函数中,结果是将变量转化适合人阅读的格式 %r是将变量穿到repr()函数中,结果是将变量转化成适合 ...
- eclipse打断点只进入class文件中的解决办法
内容来源 https://www.cnblogs.com/scode2/p/8671908.html#undefined 是由于对应的Java类跟编译后的class文件,没有关联上, 解决办法: 在打 ...
- beetl的内置函数 (如strutil 工具类)
转自:http://ibeetl.com/guide/ 2.19. 函数调用 Beetl内置函数请参考附录,以下列出了常用的函数 date 返回一个java.util.Date类型的变量,如 date ...
- spring面试大全
一.spring如何实现资源管理? 使用 applicationContext.getResource(“classpath:文件名”):在src根目录下,在类路径下 applicationConte ...
- Laravel 中的异常处理
这篇文章里,我们将研究 Laravel 框架中最重要也最少被讨论的功能 -- 异常处理. Laravel 自带了一个异常处理类,它能够让你以简单.优雅的方式 report 和 render 异常. 文 ...
- Web开发中需要了解的东西【转载】
在StackExchange上有人问了这样一个问题:What should every programmer know about web development?(关于Web开发,什么是所有程序员需 ...
- 找到多个与名为“xxx”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由没有指定命名空间以搜索与此请求相匹配的控制器,则会发生这种情况。
一次在建MVC 项目的进行开发的时候,因为后来想到了一个更好的项目名称,就把 Web项目的名称重命名 改了, 然后 程序集名称,默认命名空间,都改成新的了,刚建立的项目本身也不大,运行起来,总是报 & ...