本地文件的批量创建,修改工具类
2016-12-28 12:14
399 查看
import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; public class FileUtil { /** * 对本地文件操作的类,实现文件复制,批量创建文件,批量修改文件名称 * @param file 源文件的对象,文件绝对路径 * @param path 要复制的目标路径,只需要目录层级 * @throws IOException 文件传输异常 * @author ytf.site */ public void copyFile(File file,String path) throws IOException{ //1,把源文件读取到内存中 RandomAccessFile raf=new RandomAccessFile(file, "rw"); int i=(int) file.length(); byte[] b=new byte[i]; raf.read(b); //2,判断目标路径是否存在,不存在创建该路径 File mbPath=new File(path); if(!mbPath.exists()){ mbPath.mkdirs(); } // 3.生成复制后的文件名,并创建复制后的文件 String name=file.getName(); String old=name.substring(0,name.lastIndexOf(".")); String newName=name.replace(old, old+"_副本");//替换源文件名中.前边的一部分 File newFile=new File(mbPath, newName); if(!newFile.exists()){ newFile.createNewFile(); } // 4.向要复制的文件输出数据 RandomAccessFile out=new RandomAccessFile(newFile, "rw"); out.write(b); //5.关闭资源流 out.close(); raf.close(); } /** 批量创建文件 * @param file 要创建文件的父级目录 * @param fileName 要创建的文件名 * @param hz 要创建的文件后缀名 * @param num 要创建的文件数量 * @return 返回成功创建文件的数量 * @throws IOException 文件传输异常 */ public int batchCreateFiles(File file,String fileName,String hz,int num) throws IOException{ //1.判断父级目录是否存在,如果不存在,创建该目录 if(!file.exists()){ file.mkdirs(); } //2.批量创建文件 int len=String.valueOf(num).length();//确定最大几位数 for (int i = 1; i <=num; i++) { File f=new File(file,fileName+String.format("%0"+len+"d"+hz, i));//数字格式化 @SuppressWarnings("unused") int count=0; if(!f.exists()){ boolean b=f.createNewFile(); if(b){ count++;//记录成功创建文件的个数 } } } System.out.println("成功创建"+num+"个文件"); return num; } /** * 批量修改文件 * @param file 要修改文件的父级目录 * @param oldName 需要修改的文件名 * @param newName 修改过后的文件名 * @return 返回成功修改文件的个数, * @return 若返回-1,说明父级目录不存在,已经结束该方法的使用 */ public int renameFiles(File file,String oldName,String newName){ // 1.判断文件所在的父级目录是否存在 if(!file.exists()){ System.out.println("此目录不存在"); return -1;//如果文件父级目录有误,跳出该方法,结束修改 } //2.获得该父级目录下的所有文件 File[] files=file.listFiles(); int count=0; for (File f : files) { String name=f.getName();//获取文件带后缀的全名字 String name2=name.replace(oldName, newName); //获取修改后的名字(替换老名字中的部分字段),得到新名字的绝对路径 File newFile=new File(file,name2); boolean b=f.renameTo(newFile);//彻底将源文件名字改为修改后的 if(b){ count++; }else{ System.out.println("修改失败!"); } } System.out.println("成功修改了"+count+"个文件"); return count; } }
相关文章推荐
- 文件内容批量修改工具
- 可复用的批量文件修改工具
- AS/400开发经验点滴(二)一个批量修改文件属性的工具
- 批量创建文件和修改文件
- 我开发的文件扩展名批量修改工具(win32asm)
- 经过修改的读取配置文件PROPERTIES的小工具,对象尽量创建一次
- Mac下好用的批量文件扩展名修改工具
- 巧妙地批量修改unity本地文件的参数
- 一个批量修改文件属性的工具
- 使用简单工厂写一个可复用的批量文件修改工具
- 批量删除本地指定扩展名文件工具
- CnCrypt 文件属性批量修改工具,通过修改文件属性达到更好的伪装效果
- 批量创建文件并修改后缀名
- Windows7 批量修改文件属性 不用下载任何工具
- 在Linux中批量创建和修改文件或目录
- 批量修改文件的工具java代码(原创,仅限交流)
- 无需工具修改文件创建时间
- A Better Finder Attributes for Mac (文件图片批量修改工具)免注册码 v6.05中文破解版
- 用vc++重写的文件扩展名批量修改工具(改进了一下)
- 一天一篇批处理之——Part7: 批量修改文件名称以及批量创建文件