解决的问题:一个超级庞大的文件加,里面有一些我们需要的文件, 把他们找出来。 具体自己看吧,用的上就拿去。
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.nio.channels.FileChannel; import org.apache.commons.io.FileUtils; /** * @author Stony Zhang (zhangyu0182@sina.com) * http://mybeautiful.iteye.com */ public class BatchFileRename { private File targetFolder; private String soureFolder; private String extName; // such as ".png" private FileNameHander nameHandler; private FileWriter contentFileWriter; public BatchFileRename(String soureFolder, String targetFolder, String extName) { this(soureFolder,targetFolder,extName, true); } public BatchFileRename(String soureFolder, String targetFolder, String extName, boolean cleanTarget) { this.soureFolder = soureFolder; this.extName = extName; this.targetFolder = new File(targetFolder); if(!this.targetFolder.exists()){ this.targetFolder.mkdirs(); } if (cleanTarget){ try { FileUtils.cleanDirectory(this.targetFolder); } catch (IOException e) { e.printStackTrace(); } } try { contentFileWriter = new FileWriter(new File(targetFolder, "content.txt"), true); } catch (IOException e) { e.printStackTrace(); } } public void execute() { File sourceDir = new File(this.soureFolder); if (!sourceDir.isDirectory()) { System.out.println("Pls specified an correct forder!"); return; } scanFolder(sourceDir); try { contentFileWriter.close(); } catch (IOException e) { e.printStackTrace(); } } private void scanFolder(File sourceDir) { File[] list = sourceDir.listFiles(); for (File file : list) { if (file.isDirectory()) { scanFolder(file); continue; } if (!file.getName().endsWith(extName)) { continue; } this.copyToTargetFolder(file); } } private void copyToTargetFolder(File file) { try { // check if the file exists? String fileName = this.getFileName(file); System.out.println("Copy file :" + file.getAbsolutePath()); contentFileWriter.write(String.format("%-40s %s\r\n", fileName, file.getAbsolutePath())); contentFileWriter.write(String.format("%80s\r\n", "_").replace(" ", "_")); copyFile(file, new File(this.targetFolder, fileName)); } catch (IOException e) { e.printStackTrace(); } } private String getFileName(File file) { String fName = getNameHandler().newName(file); File destFile = new File(this.targetFolder, fName); if (!destFile.exists()) { return fName; } String newFileName; int index = fName.lastIndexOf("."); if (index > 0) { String mainName = fName.substring(0, index); String extName = fName.substring(index); newFileName = mainName + "_1" + extName; } else { newFileName = fName + "_1"; } File newFile = new File(this.targetFolder, newFileName); if (newFile.exists()) { return getFileName(newFile); } return newFileName; } public static void copyFile(File in, File out) throws IOException { FileInputStream fileInputStream = new FileInputStream(in); FileOutputStream fileOutputStream = new FileOutputStream(out); try { FileChannel sourceChannel = fileInputStream.getChannel(); FileChannel destinationChannel = fileOutputStream.getChannel(); sourceChannel.transferTo(0, sourceChannel.size(), destinationChannel); // or destinationChannel.transferFrom(sourceChannel, 0, // sourceChannel.size()); fileInputStream.close(); fileOutputStream.close(); sourceChannel.close(); destinationChannel.close(); } catch (Exception e) { e.printStackTrace(); } finally { } } public static void main(String[] args) { BatchFileRename run = new BatchFileRename("f:\\temp\\test_src", "F:\\temp\\test_dest", ".png"); run.setNameHandler(new FileNameHander() { @Override public String newName(File file) { return file.getName().toLowerCase(); } }); run.execute(); } public FileNameHander getNameHandler() { return nameHandler; } public void setNameHandler(FileNameHander nameHandler) { this.nameHandler = nameHandler; } private static interface FileNameHander { String newName(File file); } }
注意: 依赖common-io.
相关推荐
多EXCEL文件的数据自动归集与汇总多EXCEL文件的数据自动归集与汇总多EXCEL文件的数据自动归集与汇总
单位信息归集是数据归集的重要组成部分,主要包括单位代码、组织机构代码、单位名称、隶属关系、经济类型、单位管理类型、困难企业标志、医疗执行办法、是否军转户、是否年审等信息。这些信息的标准要求如下: 1. ...
电梯应急处置平台数据归集规则是针对电梯安全管理中的一项重要工作,旨在规范和标准化电梯运行过程中产生的各种数据的收集、处理和分析流程。这一规则的制定对于提高电梯故障应急响应速度,保障公众安全,以及提升...
完整Java、Springboot对接钱包,ETH、BSC、HECO钱包充提、归集
从提供的部分文档内容来看,其中包含了一系列数字和符号,这可能是实际发生的研究开发费用的金额,或者是一些相关的编号、代码。但是由于OCR技术的限制,部分内容出现了一些不连贯和不完整的现象,需要专业人员对...
市场监管大数据归集系统建设研究.pdf
费用归集工具(会计通用版)1.25 版权:渊龙科技 BY:天蝎的怨恨 F2: 添加框与查询框的切换键 回车:光标移动到下一个输入框 及“确定” 重置费用项目:设置 费用项目的名称 如:运费 此软件为 会计核算费用成本的...
电梯应急处置平台数据归集规则.pdf 数据归集规则 电梯应急处置平台数据归集规则是指在电梯应急处置平台中,如何收集、处理和分析数据的规则和标准。本文档定义了电梯应急处置平台数据归集的术语和定义、基础数据元...
该项目为基于Python的NAS媒体库资源归集整理工具设计源码,包含255个文件,涵盖82个Python脚本、45个whl包、32个HTML文件、19个PNG图片、12个SVG文件、8个JavaScript脚本、4个YAML配置文件、3个Markdown文件、3个...
省公共信用信息系统第一批归集数据项.doc
在信息技术领域,订单数据的归集方法是一项重要的技术,尤其对于企业管理和运营分析至关重要。这种专利技术可能涉及到如何高效、准确地整合来自不同渠道、不同系统的订单信息,确保数据的一致性和完整性。通常,这样...
商业银行如何开展住房公积金归集及贷款业务.pptx
电力行业量测数据归集专项模型及标准表设计成果
对一中心、一张图、服务接口和运行指标体系进行完善优化。基本搭建水务数据大基座,大屏版、电脑版和移动版。 为全市“一网统管”建设、水务数字化转型工作提供了数据支撑。 在防御2018-2020年“安比”、“云雀”、...
1. **制造费用的归集与分配**:制造费用是指企业在生产过程中发生的,但不能直接计入某一特定产品的成本,而需要按照一定的标准分配到各产品中的间接费用。例如,电费、折旧费、低值易耗品摊销等。案例中,制造费用...
成本费用归集与分配制度 成本费用归集与分配是成本核算的核心问题,它是指对生产费用进行分类、归集、分配和核算,以便计算产品成本。成本费用归集与分配制度是对生产费用进行分类、归集和分配的规定和方法。 第一...
深信服_下一代防火墙AF_央企互联网出口归集安全防护场景.pdf
全国工程质量安全监管信息平台-电子证照归集共享业务规程.doc
最后,通过提供的"2.1-FI-定义公司代码.exe"文件,用户可以进行交互式学习,通过录像的方式直观了解每个步骤,并按照演示操作实践。这样的学习方式有助于加深理解和记忆,使用户能够更好地掌握SAP FI中公司代码的...