1. .最近测试遇见一个项目需要批量造文件,文件内容不变只需要修改文件名称。文件名称是three0_01_20170102.xls-three119_01_20170116.xls,
文件规则“文件前缀是three0-three119共120个,01固定不变,后缀是日期20170101-20170116共16个日期”这个只是举例其中一部分文件,文件总共有10万个。
2. ## 需要修改的文件
按行读取文件-批量重命名
4. 下面展示 代码
。
public class read {
public static ArrayList<String> read(String name) {
// 使用ArrayList来存储每行读取到的字符串
ArrayList<String> arrayList = new ArrayList<>();
try {
File file = new File(name);
InputStreamReader inputReader = new InputStreamReader(new FileInputStream(file));
BufferedReader bf = new BufferedReader(inputReader);
String str;
// 按行读取字符串
while ((str = bf.readLine()) != null) {
arrayList.add(str);
}
bf.close();
inputReader.close();
} catch (IOException e) {
e.printStackTrace();
}
return arrayList;
}
public static void renameDataFile(String dataFilePath) throws Exception {
File file = new File(dataFilePath);
File[] files = file.listFiles();
String name="E:\\datafile\\file.txt";
//按行读取-20170101.xls-20170116.xls共16个日期
ArrayList<String> list=read(name);
int j=0;
int k=0;
for (int i = 0; i < files.length; i++) {
if(i/16>=1&&(i%16==0)) {
k++;
j=0;
}
//renameTo方法重命名-如果文件已存在则不能修改成功
files[i].renameTo(new File(dataFilePath+"\\"+"three"+k+"_01_"+list.get(j)));
j++;
}
}
public static void main(String[] args) throws Exception {
String pathname="E:\\datafile\\name";
renameDataFile(pathname);
}
}
修改后的效果