栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaSE文件操作工具类FileUtil详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaSE文件操作工具类FileUtil详解

本文实例为大家分享了JavaSE文件操作工具类FileUtil的具体代码,供大家参考,具体内容如下

先展示一下文件工具类中打印文件夹树形结构的结果:

代码如下:

package com.mjq.iotest;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 

public class FileUtil 
{
 
 
 public static boolean creatFile(String path) throws Exception
 {
 if(null == path || path.length() == 0)
 {
  throw new Exception("路径不正确!");
 }
 File file = new File(path);
 //如果路径存在,则不创建
 if(!file.exists())
 {
  if(file.isDirectory())
  {
  //文件夹
  file.mkdirs();
  // file.mkdir();  创建单层路径 file.mkdirs() 可以创建多层路径
  return true;
  }
  else
  {
  //文件  先创建父路径,然后再创建文件
  String dirPath = path.substring(0,path.lastIndexOf(File.separator));
  File dirFile = new File(dirPath);
  if(!dirFile.exists())
  {
   dirFile.mkdirs();
  }
  File fileFile = new File(path);
  try {
   fileFile.createNewFile();
   return true;
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  }
 }
 else
 {
  throw new Exception("文件已存在!");
 }
 return false;
 } 
 
 public static void deleteFile(String filePath) throws Exception
 {
 if(null == filePath || filePath.length() == 0)
 {
  throw new Exception("filePath:"+filePath+"路径不正确!");
 }
 File file = new File(filePath);
 if(!file.exists())
 {
  throw new Exception("filePath:"+filePath+"文件不存在!");
 }
 if(file.isFile())
 {
  file.delete();
 }
 if(file.isDirectory())
 {
  File [] childFiles = file.listFiles();
  if(null != childFiles && childFiles.length!=0)
  {
  //循环递归删除
  for(File childFile:childFiles)
  {
   deleteFile(childFile.getAbsolutePath());
  }
  }
  file.delete();
 }
 }
 
 public static void getbaseInfo(File file)
 {
 //文件绝对路径  文件大小  文件是否是文件夹   文件是否是文件   文件是否可读   文件是否可写      文件是否可执行     文件修改时间    文件父目录名
 //文件所在分区总大小  未使用大小  可用大小
 System.out.println("文件基本信息如下:");
 System.out.println("文件绝对路径:"+file.getAbsolutePath());
 System.out.println("文件名称:"+file.getName());
 System.out.println("文件大小:"+file.length());
 System.out.println("文件是否是文件夹:"+file.isDirectory());
 System.out.println("文件是否是文件:"+file.isFile());
 System.out.println("文件是否可读:"+file.canExecute());
 System.out.println("文件是否可读:"+file.canRead());
 System.out.println("文件是否可写:"+file.canWrite());
 System.out.println("文件修改时间:"+file.lastModified());
 System.out.println("文件父目录名称:"+file.getParent());
 System.out.println("文件所在分区大小:"+file.getTotalSpace()/1024/1024+"Mb");
 System.out.println("文件所在分区未使用大小:"+file.getFreeSpace()/1024/1024+"Mb");
 System.out.println("文件所在分区可用大小:"+file.getUsableSpace()/1024/1024+"Mb");
 System.out.println("文件夹结构如下图:");
 try {
  printFileStructure(file,1);
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 
 public static void printFileStructure(File file ,int deepth) throws Exception
 {
 if(!file.exists())
 {
  throw new Exception("文件路径不存在!");
 }
 if(!file.isHidden())
 {
  if(file.isFile())
  {
  //直接打印
  printFile(file,deepth);
  return;
  }
  if(file.isDirectory())
  {
  //先打印自身,然后递归打印子文件夹和子文件
  printFile(file,deepth);
  File [] childFiles = file.listFiles();
  if(null != childFiles && childFiles.length>0)
  {
   deepth++;
   for(File childFile : childFiles)
   {
   printFileStructure(childFile ,deepth);
   }
  }
  }
 }
 
 }
 
 public static void printFile(File file ,int deepth)
 {
 String name = file.getName();
 StringBuffer sb = new StringBuffer();
 StringBuffer tempSb = new StringBuffer();
 for(int i =0;i0)
 {
  for(File filteredFile: fileList)
  {
  filteredFile.delete();
  
  }
 }
 }
 
 public static void copyFile(String srcFilePath,String destFilePath)
 {
 InputStream is = null;
 OutputStream os = null;
 try {
  if(creatFile(destFilePath))
  {
  File srcFile = new File(srcFilePath);
  File destFile = new File(destFilePath);
   is = new FileInputStream(srcFile);
   os = new FileOutputStream(destFile);
  byte [] buffer = new byte[2048];
  int temp = 0;
  while((temp = is.read(buffer))!=-1)
  {
   os.write(buffer, 0, temp);
  }
  }
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 finally
 {
  //java 7 以后可以不关闭,可以自动关闭
  if(null != os)
  {
  try {
   os.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  }
  if(null != is)
  {
  try {
   is.close();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  }
 }
 }
 
 public static void cutFile(String srcFilePath,String destFilePath)
 {
 //先复制,再删除
 try {
  copyFile( srcFilePath, destFilePath);
  deleteFile(srcFilePath);
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 
 
 public static void main(String [] args)
 {
 File file = new File("D:\北邮人下载\书籍\编译原理");
 getbaseInfo(file);
 try {
  
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } 
 
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/137117.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号