java path util_Java操作文件Util

1 packageio.guangsoft.utils;2

3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileOutputStream;6 importjava.io.IOException;7 importjava.nio.channels.FileChannel;8 importjava.util.ArrayList;9 importjava.util.List;10

11 public classFilesUtil {12

13 //判断文件或文件夹是否存在

14 public static booleanisExit(String fileName) {15 if(StringUtils.isNotEmpty(fileName)) {16 File oldfile = newFile(fileName);17 if(oldfile.exists()) {18 return true;19 }20 }21 return false;22 }23

24 //NIO方式复制文件

25 public static voidcopyFileNIO(File originFile, File destFile) {26 File destDir =destFile.getParentFile();27 if (!destDir.exists()) {28 destDir.mkdirs();29 }30 FileInputStream fi = null;31 FileOutputStream fo = null;32 FileChannel in = null;33 FileChannel out = null;34 try{35 fi = newFileInputStream(originFile);36 fo = newFileOutputStream(destFile);37 in = fi.getChannel();//得到对应的文件通道

38 out = fo.getChannel();//得到对应的文件通道

39 in.transferTo(0, in.size(), out);//连接两个通道,并且从in通道读取,然后写入out通道

40 } catch(IOException e) {41 e.printStackTrace();42 } finally{43 try{44 fi.close();45 in.close();46 fo.close();47 out.close();48 } catch(IOException e) {49 e.printStackTrace();50 }51 }52 }53

54 //根据文件路径复制文件

55 public static voidcopyFile(String oldPath, String newPath) {56 try{57 File oldfile = newFile(oldPath);58 if(oldfile.exists()) {59 File destFile = newFile(newPath);60 copyFileNIO(oldfile, destFile);61 }62 } catch(Exception e) {63 System.out.println("复制单个文件操作出错");64 e.printStackTrace();65 }66

67 }68

69 //根据文件路径删除文件

70 public static voiddelFile(String filePathAndName) {71 try{72 String filePath =filePathAndName;73 filePath =filePath.toString();74 File myDelFile = newFile(filePath);75 myDelFile.delete();76 } catch(Exception e) {77 System.out.println("删除文件操作出错");78 e.printStackTrace();79 }80

81 }82

83 //移动文件

84 public static voidmoveFile(String oldPath, String newPath) {85 copyFile(oldPath, newPath);86 delFile(oldPath);87 }88

89 //复制整个文件夹到指定目录

90 public static voidcopy(String src, String des) {91 File file1 = newFile(src);92 String desDir = src.substring(src.lastIndexOf("\\") + 1, src.length());93 File[] fs =file1.listFiles();94 File file2 = new File(des +desDir);95 if (!file2.exists()) {96 file2.mkdirs();97 }98 if (fs != null) {99 for(File f : fs) {100 copyFile(f.getPath(), des + desDir + "\\" + f.getName()); //调用文件拷贝的方法

101 }102 }103 }104

105 //递归删除目录下的所有文件及子目录下所有文件

106 public static booleandeleteDir(File dir) {107 boolean ret = true;108 if(dir.isDirectory()) {109 String[] children =dir.list();110 //递归删除目录中的子目录

111 if (children != null) {112 for (int i = 0; i < children.length; i++) {113 boolean success = deleteDir(newFile(dir, children[i]));114 if (!success) {115 return false;116 }117 }118 }119 }120 //目录此时为空,可以删除

121 try{122 ret =dir.delete();123 if(!ret){124

125 System.out.println("删除失败:"+dir.getName());126 System.gc();//系统进行资源强制回收

127 ret =dir.delete();128 }129 }catch(Exception ex){130 ret = false;131 }finally{132

133 }134 returnret;135 }136

137 //获取文件夹下所有文件路径

138 public static ListgetFilePathList(String dirPath) {139 List filePathlist = new ArrayList();140 File dir = newFile(dirPath);141 File[] files = dir.listFiles(); //该文件目录下文件全部放入数组

142 if (files != null) {143 for (int i = 0; i < files.length; i++) {144 if (files[i].isDirectory()) { //判断是文件还是文件夹

145 getFilePathList(files[i].getAbsolutePath()); //获取文件绝对路径

146 } else{147 String strFileName =files[i].getAbsolutePath();148 filePathlist.add(strFileName);149 }150 }151 }152 returnfilePathlist;153 }154

155 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值