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

操作io的工具类

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

操作io的工具类

一、操作io的工具类

commons-io是apache下的一个操作文件和目录的工具类,非常方便,而Commons-io可以直接操作文件和目录
Files是java自带的,在操作文件夹方面还需要自己写逻辑创建文件夹,操作文件时,copy/move(source,dest),dest需要写明操作的文件名,也就是不能直接写目录,而是还需要写目录下制定的文件名(也就相当于是可以重命名的)

二、commons-io 1、复制
FileUtils.copyFile(File,File);//拷贝文件到指定文件中
FileUtils.copyFileToDirectory(File,File);//拷贝文件到指定目录中
FileUtils.copyDirectory(File,File);//拷贝文件夹中得内容到指定目录中
FileUtils.copyDirectoryToDirectory(File,File);//拷贝文件夹到指定目录中
2、移动
FileUtils.moveFile(File,File);//移动文件到指定文件中
FileUtils.moveFileToDirectory(File,File);//移动文件到指定目录中
FileUtils.moveDirectory(File,File);//移动文件夹中得内容到指定目录中
FileUtils.moveDirectoryToDirectory(File,File);//移动文件夹到指定目录中
3、删除
FileUtils.deleteDirectory(File);//删除指定目录
FileUtils.deleteQuietly(File);//删除指定文件
三、Files,File

File存储的路径分隔符是而不是/,注意在截断时的区别;
重命名:File.renameTo(File) —>boolean;,当前的file并不会变成修改后的路径
存在:File.exists()—>boolean

四、常用功能 1、解决文件复制和移动重名问题(参考windows文件,在重复的后面添加版本,版本叠加)
	public FileManageSameName(){
		public static final int INIT_VERSION = 1;//初始版本号
		public boolean copyOrMove(File resource, File target,String method) {
	        try {
	            File newFile = new File(target+"/"+resource.getName());//判断target目标目录中是否存在同名的临时file
	            if (newFile.exists()) {//处理已存在文件
	                resolveExist(newFile,FileManageSameName.INIT_VERSION);//newFile是经过版本处理的全新file
	                //修改resource源文件的文件名
	                resource.renameTo(new File(resource.getPath().substring(0,resource.getPath().lastIndexOf("\")+1)+newFile.getName()));
	            }
	            //移动或复制
	            if(method.equals("copy")) {
	                if(resource.isFile()) FileUtils.copyFileToDirectory(resource,target);
	                else FileUtils.copyDirectoryToDirectory(resource,target);
	            }
	            if(method.equals("move")) {
	                if(resource.isFile()) FileUtils.moveFileToDirectory(resource,target,false);
	                else FileUtils.moveDirectoryToDirectory(resource,target,false);
	            }
	        } catch (IOException e) {
	            e.printStackTrace();return false;
	        }
	        return true;
	    }

	    //解决重名,添加默认版本
	    public void resolveExist(File file,int ver) {
	        String name = file.getName();
	        String oldPath = file.getPath();
	        String version = "("+ver+")";
	        String verFilePath = "";
	        File verFile = file;
	        if(file.isFile()) version = getFileName(name)+version+getSuffix(name);
	        if(file.isDirectory()) version  = name+version;
	        verFilePath = oldPath.substring(0, oldPath.lastIndexOf("\") + 1) + version;
	        verFile = new File(verFilePath);
	        if(!verFile.exists()) file.renameTo(verFile);//重命名
	        else resolveExist(file,++ver); //版本更新
	    }


	    public String getSuffix(String name){ return name.substring(name.lastIndexOf("."));}
	
	    public String getFileName(String name){return name.substring(0,name.lastIndexOf("."));};
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679023.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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