IO流练习
题目:
- 在D,E盘下各新建srcDir、decDir两个文件夹。
- 利用io流将srcDir文件夹里的所有内容复制到decDir文件夹里。
- 可以利用File方法遍历文件夹目录里的文件。
public class Test {
public static void main(String[] args) {
//在D盘下创建一个srcDir文件,E盘下创建一个decDir文件
File file = new File("D:/srcDir");
File newfile = new File("E:/decDir");
//调用moveFile方法
moveFile(file,newfile);
}
public static void moveFile(File srcDir,File decDir){
//判断当前遍历到的File对象下所有文件
File[] files = srcDir.listFiles();
//如果文件里为空则返回
if (files == null)return;
for (File file:files) {
if (file.isFile()){
//复制文件
File newFile = new File(decDir,file.getName());
copy(file,newFile);
}else {
//复制文件夹
File newDir = new File(decDir + "/" + srcDir.getName());
newDir.mkdir();
moveFile(file,newDir);
}
}
}
private static void copy(File file, File newFile) {
//利用IO流进行文件的复制粘贴
try (FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = new FileOutputStream(newFile);){
byte[] bys = new byte[1024];
int len;
while ((len=fis.read(bys))!=-1) {
fos.write(bys,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}