查找在d:/app目录下的所有文件,将后缀为.json的文件复制到d:/bpp下,并将app中所有文件后缀修改为.do
package com.it.io;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class copy {
private static void test(String fileDir) {
List<File> fileList = new ArrayList<File>();
File file = new File(fileDir);
File[] files = file.listFiles();// 获取目录下的所有文件或文件夹
if (files == null) {// 如果目录为空,直接退出
return;
}
// 遍历,目录下的所有文件
for (File f : files) {
if (f.isFile()) {
fileList.add(f);
}
else if (f.isDirectory()) {
System.out.println(f.getAbsolutePath());
test(f.getAbsolutePath());
}
}
for (File f1 : fileList) {
if(f1.getName().indexOf(".json")>0) {
copyFile(f1.getPath(), "D://bpp"+f1.getPath().substring(6));
}
try {
docx(f1.getPath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void copyFile(String oldPath, String newPath) {
try {
int bytesum = 0;
int byteread = 0;
File oldfile = new File(oldPath);
if (oldfile.exists()) { //文件存在时
InputStream inStream = new FileInputStream(oldPath); //读入原文件
FileOutputStream fs = new FileOutputStream(newPath);
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
inStream.close();
}
}
catch (Exception e) {
System.out.println("复制单个文件操作出错");
e.printStackTrace();
}
}
public static void docx(String oldPath) throws IOException {
File oldFile = new File(oldPath);
if (!oldFile.exists()) {
oldFile.createNewFile();
}
String rootPath = oldFile.getParent();
File newFile = new File(rootPath + File.separator + oldFile.getName().substring(0,oldFile.getName().length()-5)+".do");
if (oldFile.renameTo(newFile)) {
System.out.println("修改成功!");
} else {
System.out.println("修改失败");
}
}
public static void main(String[] args) {
test("D:/app");
}
}