整理的一些用到过的工具类,本文为文件操作相关。不是很全......

public class FileUtils {/*** 删除指定的目录或文件** @param path 要删除的目录或文件* @return 删除成功返回 true,否则返回 false。*/public static boolean deleteFolder(String path) {boolean flag = false;File file = new File(path);// 判断目录或文件是否存在if (file.exists()) {// 判断是否为文件if (file.isFile()) { // 为文件时调用删除文件方法return deleteFile(path);} else { // 为目录时调用删除目录方法return deleteDirectory(path);}} else {return flag;}}/*** 删除单个文件** @param path 要删除文件的文件名* @return 单个文件删除成功返回true,否则返回false*/public static boolean deleteFile(String path) {boolean flag = false;File file = new File(path);// 路径为文件且不为空则进行删除if (file.isFile() && file.exists()) {file.delete();flag = true;}return flag;}/*** 删除目录以及目录下的文件** @param path 要删除目录的文件路径** @return 目录删除成功返回true,否则返回false*/public static boolean deleteDirectory(String path) {// 如果path不以文件分隔符结尾,自动添加文件分隔符if (!path.endsWith(File.separator)) {path = path + File.separator;}File dirFile = new File(path);// 如果dir对应的文件不存在,或者不是一个目录,则退出if (!dirFile.exists() || !dirFile.isDirectory()) {return false;}boolean flag = true;File[] files = dirFile.listFiles();// 删除文件夹下的所有文件(包括子目录)for (int i = 0; i < files.length; i++) {// 删除子文件if (files[i].isFile()) {flag = deleteFile(files[i].getAbsolutePath());if (!flag)break;} else {// 删除子目录的递归调用,循环删除flag = deleteDirectory(files[i].getAbsolutePath());if (!flag)break;}}if (!flag)return false;// 删除当前目录if (dirFile.delete()) {return true;} else {return false;}}/*** 复制目录** @param oldPath*            需要复制的目录* @param newPath*            目标目录*/public static boolean copyDirectory(String oldPath, String newPath) {BufferedReader br = null;BufferedWriter bw = null;try {(new File(newPath)).mkdirs(); // 如果目录不存在 则建立新目录File a = new File(oldPath);String[] file = a.list();File temp = null;for (int i = 0; i < file.length; i++) {if (oldPath.endsWith(File.separator)) {temp = new File(oldPath + file[i]);} else {temp = new File(oldPath + File.separator + file[i]);}if (temp.isFile()) {br = new BufferedReader(new InputStreamReader(new FileInputStream(temp)));bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(newPath + File.separator+ (temp.getName()).toString())));String data;while ((data = br.readLine()) != null) {bw.write(data, 0, data.length());}bw.flush();}if (temp.isDirectory()) {// 如果是子文件夹copyDirectory(oldPath + File.separator + file[i], newPath+ File.separator + file[i]);}}return true;} catch (Exception e1) {System.out.println("复制整个文件夹内容操作出错");e1.printStackTrace();return false;} finally {try {if (br != null) {br.close();}if (bw != null) {bw.close();}} catch (Exception e2) {}}}/**** 测试方法**/public static void main(String[] args) {FileUtils.deleteFolder("E:/testFolder");}
}

转载于:https://blog.51cto.com/racoguo/1227942

JavaUtils - 文件操作相关推荐

  1. Java-File文件操作

    File 类概述 Java IO API中的FIle类可以让你访问底层文件系统,通过File类,你可以做到以下几点: 检测文件是否存在 读取文件长度 移动或复制或内容修改 (基于I/o流) 重命名 删 ...

  2. C++核心编程(四)--文件操作

    5 文件操作 程序运行时产生的数据都属于临时数据,程序一点运行结束,就会被释放 通过文件可以将数据持久化 C++中对文件操作需要包含头文件:fstream 文件类型分为两种: 文本文件:文件以文本的A ...

  3. python codecs.open()及文件操作-文本处理 with open

    20210810 以二进制并追加的形式写入文件 20210731 f.write('\n') 换行写入 20210625 https://blog.csdn.net/a543402496/articl ...

  4. day07-字符编码、文件操作

    目录: 字符编码 文件处理 一.字符编码: #1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表 #2. 常用的编码表:ascii.unicode.GBK.Shift ...

  5. HTML5 本地文件操作之FileSystemAPI整理(二)

    一.文件目录操作 1.DirectoryEntry对象 属性: 1.isFile: 操作对象的是否为文件,DirectoryEntry对象固定其值为false 2.isDirectory: 操作对象是 ...

  6. python3 转码的函数_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  7. linux文件编辑操作,Linux下文本编辑及其文件操作

    文本编辑及其文件操作 Vim 命令模式: dd 删除当前行 yy 2yy nyy 复制 从光标算起,复制n行 p 粘贴 默认粘贴在光标的下一行 u 撤销 末行模式: :wq 保存退出 :wq! 强制保 ...

  8. c++:文件操作1 文件的打开

    在程序中,要使用一个文件,先要打开文件后才能读写,读写完后要关闭.创建一个新文件也要先执行打开(open)操作,然后才能往文件中写入数据.C++ 文件流类有相应的成员函数来实现打开.读.写.关闭等文件 ...

  9. python写byte数组到文件_这可能是写过最详细的Python文件操作。网友:收藏备用(中篇)...

    很多同学对于编码问题都不是很清楚,计算机常见的编码格式为: ASCII ISO-8859-1 GB2312 GBK UTF-8 UTF-16 对于Python开发中,我们一般都是采用统一的编码格式:U ...

最新文章

  1. oracle 查询本周数据生成下周数据
  2. 简洁易懂,初学者挑战学习Python编程30天 (一)
  3. javaweb k8s_阿里云部署K8Sweb项目
  4. Quiz 92 - twisted
  5. javaEE jdbc编程步骤
  6. 怎样寻回win8因为删除后清空回收站的数据
  7. C/C++下载文件_上传文件
  8. 解决oracle客户端乱码问题,如何解决oracle客户端中文乱码问题?-Oracle
  9. 美国NIST仍在与财政部和国防部就区块链支付跟踪项目合作
  10. android webview 设置cookie时间,解决Android webview设置cookie和cookie丢失的问题
  11. 流媒体RTMP协议解析
  12. Vue-组件自定义事件-绑定-解绑
  13. 牛客网 吉首大学2019年程序设计竞赛(重现赛)A: SARS病毒(矩阵快速幂 + 碰巧降幂)
  14. CSS自定义字体,在线字体格式转换
  15. 程序员编程中遇到的那些灵异事件,胆小误入!
  16. Twitter上热门的技巧与思路
  17. 【转载】JavaWeb之ssm框架搭建中遇到的问题
  18. 令人发指的关于方法重载和方法重写的一些理解(多态)
  19. Excel 日期公式识别--批量转格式Text To Be columns
  20. 足球数据采集 php,世上最权威足球数据网站只爱梅西?

热门文章

  1. 【Android开发】NDK开发(3)-jni开发技巧
  2. Android Studio xml文件中的布局预览视图
  3. react-native flatlist 上拉加载onEndReached方法频繁触发的问题
  4. Windows 7 蓝屏代码大全 amp; 蓝屏全攻略
  5. Linux基础二(挂载、关机重启与系统等级)
  6. requirejs、vue、vuex、vue-route的结合使用,您认为可行吗?
  7. 有关 iOS 的开发证书、应用标识、设备标识、配置文件以及密钥 #DF...
  8. 编写你自己的单点登录(SSO)服务(转)
  9. [转载] 在网页中拖放和停靠div的例子
  10. 循环显示图片、按键抽奖的小工具