java中对于文件的操作,是再常见不过了。以下代码是自己代码中所用到的工具类,仅供参考。

import java.io.File;
import java.io.IOException; /**
* 创建新文件和目录
*
* @author Fly
*/
public class CreateFile {
/**
* 验证字符串是否为正确路径名的正则表达式
*/
private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*"; /**
* 通过 sPath.matches(matches) 方法的返回值判断是否正确
* sPath 为上传的文件路径字符串
*/
static boolean flag = false; /**
* 文件
*/
static File file; /**
* 根据路径删除指定的目录或文件,无论存在与否
*
* @param deletePath
* @return
*/
public static boolean deleteFolder(String deletePath) {
flag = false;
if (deletePath.matches(matches)) {
file = new File(deletePath);
// 判断目录或文件是否存在
if (!file.exists()) {
// 不存在返回 false
return flag;
} else {
// 判断是否为文件
if (file.isFile()) {
// 为文件时调用删除文件方法
return deleteFile(deletePath);
} else {
// 为目录时调用删除目录方法
return deleteDirectory(deletePath);
}
}
} else {
System.out.println("要传入正确路径!");
return false;
}
} /**
* 删除单个文件
*
* @param filePath 文件路径
* @return
*/
public static boolean deleteFile(String filePath) {
flag = false;
file = new File(filePath);
// 路径为文件且不为空则进行删除
if (file.isFile() && file.exists()) {
file.delete();// 文件删除
flag = true;
}
return flag;
} /**
* 删除目录(文件夹)以及目录下的文件
*
* @param dirPath
* @return
*/
public static boolean deleteDirectory(String dirPath) {
// 如果sPath不以文件分隔符结尾,自动添加文件分隔符
if (!dirPath.endsWith(File.separator)) {
dirPath = dirPath + File.separator;
}
File dirFile = new File(dirPath);
// 如果dir对应的文件不存在,或者不是一个目录,则退出
if (!dirFile.exists() || !dirFile.isDirectory()) {
return false;
}
flag = true;
// 获得传入路径下的所有文件
File[] files = dirFile.listFiles();
// 循环遍历删除文件夹下的所有文件(包括子目录)
if (files != null) {
for (File file1 : files) {
if (file1.isFile()) {
// 删除子文件
flag = deleteFile(file1.getAbsolutePath());
System.out.println(file1.getAbsolutePath() + " 删除成功");
if (!flag) {
break;// 如果删除失败,则跳出
}
} else {// 运用递归,删除子目录
flag = deleteDirectory(file1.getAbsolutePath());
if (!flag) {
break;// 如果删除失败,则跳出
}
}
}
} if (!flag) {
return false;
}
// 删除当前目录
return dirFile.delete();
} /**
* 创建单个文件
*
* @param filePath 文件所存放的路径
* @return
*/
public static boolean createFile(String filePath) {
File file = new File(filePath);
if (file.exists()) {// 判断文件是否存在
System.out.println("目标文件已存在" + filePath);
return false;
}
if (filePath.endsWith(File.separator)) {// 判断文件是否为目录
System.out.println("目标文件不能为目录!");
return false;
}
if (!file.getParentFile().exists()) {// 判断目标文件所在的目录是否存在
// 如果目标文件所在的文件夹不存在,则创建父文件夹
System.out.println("目标文件所在目录不存在,准备创建它!");
if (!file.getParentFile().mkdirs()) {// 判断创建目录是否成功
System.out.println("创建目标文件所在的目录失败!");
return false;
}
}
try {
if (file.createNewFile()) {// 创建目标文件
System.out.println("创建文件成功:" + filePath);
return true;
} else {
System.out.println("创建文件失败!");
return false;
}
} catch (IOException e) {// 捕获异常
e.printStackTrace();
System.out.println("创建文件失败!" + e.getMessage());
return false;
}
} /**
* 创建目录(如果目录存在就删掉目录)
*
* @param destDirName 目标目录路径
* @return
*/
public static boolean createDir(String destDirName) {
File dir = new File(destDirName);
if (dir.exists()) {// 判断目录是否存在
System.out.println("目标目录已存在!");
//return false;
return CreateFile.deleteDirectory(destDirName);
}
System.out.println("已删除原目录并重新创建!");
if (!destDirName.endsWith(File.separator)) {// 结尾是否以"/"结束
destDirName = destDirName + File.separator;
}
if (dir.mkdirs()) {// 创建目标目录
System.out.println("创建目录成功!" + destDirName);
return true;
} else {
System.out.println("创建目录失败!");
return false;
}
} /**
* 创建临时文件
*
* @param prefix 前缀字符串定义的文件名;必须至少有三个字符长
* @param suffix 后缀字符串定义文件的扩展名;如果为null后缀".tmp" 将被使用
* @param dirName 该目录中的文件被创建。对于默认的临时文件目录nullis来传递
* @return 一个抽象路径名新创建的空文件。
* @throws IllegalArgumentException -- 如果前缀参数包含少于三个字符
* @throws IOException -- 如果文件创建失败
* @throws SecurityException -- 如果SecurityManager.checkWrite(java.lang.String)方法不允许创建一个文件
*/
public static String createTempFile(String prefix, String suffix, String dirName) {
File tempFile = null;
if (dirName == null) {// 目录如果为空
try {
tempFile = File.createTempFile(prefix, suffix);// 在默认文件夹下创建临时文件
return tempFile.getCanonicalPath();// 返回临时文件的路径
} catch (IOException e) {// 捕获异常
e.printStackTrace();
System.out.println("创建临时文件失败:" + e.getMessage());
return null;
}
} else {
// 指定目录存在
File dir = new File(dirName);// 创建目录
if (!dir.exists()) {
// 如果目录不存在则创建目录
if (CreateFile.createDir(dirName)) {
System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
return null;
}
}
try {
tempFile = File.createTempFile(prefix, suffix, dir);// 在指定目录下创建临时文件
return tempFile.getCanonicalPath();// 返回临时文件的路径
} catch (IOException e) {// 捕获异常
e.printStackTrace();
System.out.println("创建临时文件失败!" + e.getMessage());
return null;
}
}
} public static void main(String[] args) {
String dirName = "E:/createFile/";// 创建目录
CreateFile.createDir(dirName);// 调用方法创建目录
String fileName = dirName + "/file1.txt";// 创建文件
CreateFile.createFile(fileName);// 调用方法创建文件
String prefix = "temp";// 创建临时文件
String surfix = ".txt";// 后缀
for (int i = 0; i < 10; i++) {// 循环创建多个文件
System.out.println("创建临时文件: "// 调用方法创建临时文件
+ CreateFile.createTempFile(prefix, surfix, dirName));
}
}
}

java使用io创建文件与删除文件的工具类的更多相关文章

  1. Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录

    Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator // ...

  2. java中如何创建带路径的文件

    请教各位大侠了,java中如何创建带路径的文件,说明下 这个路径不存在 ------回答--------- ------其他回答(2分)--------- Java code File f = new ...

  3. java中File的delete()方法删除文件失败的原因

    java中File的delete()方法删除文件失败的原因 学习了:http://hujinfan.iteye.com/blog/1266387 的确是忘记关闭了: 引用原文膜拜一下: 一般来说 ja ...

  4. linux中为什么删除文件比创建文件要快,读取文件和删除文件的过程是什么?

    一.为什么删除文件比创建文件要快? 因为删除文件只是将bitmap位图表中将文件所占据的inode 和dacablock的使用状态从1变成0,相当于释放了这些快的使用权. 二.读取文件和删除文件的过程 ...

  5. Linux常用命令,查看树形结构、删除目录(文件夹)、创建文件、删除文件或目录、复制文件或目录(文件夹)、移动、查看文件内容、权限操作

    5.查看树结构(tree) 通常情况下系统未安装该命令,需要yum install -y tree安装 直接使⽤tree显示深度太多,⼀般会使⽤ -L选项⼿⼯设定⽬录深度 格式:tree -L n [ ...

  6. C#结合js 上传文件和删除文件(技术点有:asp.net mvc ,nhibernate,ajax等)

    之前做项目的时候要用到上传文件的功能,现在我总结一下,上传文件和删除文件的代码,在以后的使用的过程中也更方便查找. [HttpPost] public ActionResult EditUser() ...

  7. ASP FSO操作文件(复制文件、重命名文件、删除文件、替换字符串)

    ASP FSO操作文件(复制文件.重命名文件.删除文件.替换字符串)FSO的意思是FileSystemObject,即文件系统对象.FSO对象模型包含在Scripting 类型库 (Scrrun.Dl ...

  8. 深入理解linux关闭文件和删除文件

    背景介绍 最近看了linux系统编程(linux system programming)一书,结合深入理解linux内核(understanding the linux kernel)一书,深入理解了 ...

  9. Delphi阿里云对象存储OSS【支持上传文件、下载文件、删除文件、创建目录、删除目录、Bucket操作等】

    作者QQ:(648437169) 点击下载➨Delphi阿里云对象存储OSS             阿里云api文档 [Delphi阿里云对象存储OSS]支持 获取Bucket列表.设置Bucket ...

  10. 无法为数据库 XXX 中的对象XXX 分配空间,因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间。

    无法为数据库 XXX 中的对象XXX 分配空间,因为 'PRIMARY' 文件组已满.请删除不需要的文件.删除文件组中的对象.将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘 ...

随机推荐

  1. NetBeans运行项目报错

    1.错误描述 严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start co ...

  2. SQL游标使用及实例

    declare my_cursor cursor scroll dynamic for select * from t_msg open my_cursor declare @name sysname ...

  3. JDBC连接池-自定义连接池

    JDBC连接池 java JDBC连接中用到Connection   在每次对数据进行增删查改 都要 开启  .关闭  ,在实例开发项目中 ,浪费了很大的资源 ,以下是之前连接JDBC的案例 pack ...

  4. Windows Server 2012 R2 官方原版镜像

    微软操作系统 Windows Server 2012 R2 官方原版镜像 Windows Server 2012 R2 是由微软公司(Microsoft)设计开发的新一代的服务器专属操作系统,其核心版 ...

  5. 畅通工程 HDU - 1232

    某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接 ...

  6. 对ajax回调函数的研究

    1.1开发中遇到的问题 最近开发中我和同事都碰到这样的问题,我们使用jQuery的ajax方法做服务端的校验,在success方法里将验证结果存储到一个js的公共变量或者是页面里的隐藏域,接下来的代码 ...

  7. linux和windows通用的路径

    String path=request.getSession().getServletContext().getRealPath("/")+"js" + Sys ...

  8. (luogu1704)寻找最优美做题曲线 [TPLY]

    寻找最优美做题曲线 题目链接:https://www.luogu.org/problemnew/show/P1704 题目大意: 求包含指定点的最长不降子序列(严格递增) 题解 首先我们发现 一个序列 ...

  9. Linux系统中svn服务器设置开机启动

    安装完svn服务器后虽然好用但是因为经常重启Linux服务器,每次重启完就要去手动启动svn服务器,很是麻烦,于是在网上找了一些方法后,自己把svn服务器设置成开机启动 步骤一:安装svn服务器: h ...

  10. WPF研究之道——数据驱动UI

    如果有人问你wpf和winform的区别,也许你会说,wpf的界面比较漂亮,wpf有诸多新的理念,的确如此.我今天想说的是wpf的数据驱动UI的理念. 传统的winform,想要更新界面内容,是不是必 ...