黑马程序员技术交流社区
标题:
点着必看题
[打印本页]
作者:
lt3886930
时间:
2016-6-22 22:53
标题:
点着必看题
题目: IO流 概率 高
/* 统计一个文件夹下的txt文件个数,包括所有子文件夹内,
并将它们全部复制到D盘任意目录下
思路:
(★提示★)用高效字节流可以用来复制任意类型文件
1、定义一个统计变量
2、用File对象封装目录
3、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组
4、遍历这个File数组,得到每一个File对象
5、判断该File对象是否是文件夹
a、如果是文件夹回到第3步
b、继续判断是否以.txt结尾
是:复制文件并将统计文件变量加1
否:不复制
*/
//导包
import java.io.IOException;
import java.io.File;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
class FileCopyMultiFolderByByte
{
//用来统计复制文件的总个数
public static int count =0;
public static void main(String[] args) throws IOException
{
//用File对象封装目录
File srcfile = new File("D:\\demos\\");
//用File对象封装目录
File destFile = new File("D:\\copyTo\\");
//调用复制的方法
copyFolder(srcfile,destFile);
System.out.println("文件复制完毕,共复制文件 "+count+" 个");
}
//复制方法
public static void copyFolder(File srcFile, File destFile) throws IOException
{
//通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组
File[] fileArray = srcFile.listFiles();
//遍历这个File数组,得到每一个File对象
for(File file : fileArray)
{
//判断该File对象是否是文件夹
if(file.isDirectory())
{
//多级目录递归
copyFolder(file,destFile);
}
else
{
//文件
File newFile = new File(destFile, file.getName());
copyFile(file , newFile);
}
}
}
//复制文件并计数的方法
public static void copyFile(File srcFile, File newFile) throws IOException
{
//如果不是以txt为后缀的不复制,跳出循环
if(!srcFile.getName().endsWith(".txt"))
{
continue;
}
//统计文件个数的变量加1
count++;
//用高效的字节输入流封装数据源
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
//用高效的字节输出流封装目的地
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
byte[] bys= new byte[1024];
int len = 0;
//判断是否读到文件结尾
while( (len = bis.read(bys)) != -1 )
{
//将数据写到文件中
bos.write(bys,0,len);
//刷新缓存流
bos.flush();
}
//关闭流对象
bis.close();
bos.close();
}
}
作者:
danielchung6600
时间:
2016-6-22 23:04
不觉而厉
作者:
lt3886930
时间:
2016-6-23 23:38
danielchung6600 发表于 2016-6-22 23:04
不觉而厉
一起努力,一起加油,我们是最棒的
作者:
w1599928008
时间:
2016-6-23 23:52
谢谢楼主分享,收藏了
作者:
danielchung6600
时间:
2016-6-25 01:00
lt3886930 发表于 2016-6-23 23:38
一起努力,一起加油,我们是最棒的
一起努力 哈哈哈
作者:
火影木叶
时间:
2016-6-25 01:22
谢谢楼主分享,收藏了
作者:
OmbreAmant丶C
时间:
2016-6-25 21:54
我就是进来看看!!!
作者:
sgnx
时间:
2016-6-25 21:56
这个必须赞一个
作者:
940752944
时间:
2016-6-25 22:01
努力,谢谢分享
作者:
下届海贼王
时间:
2016-6-25 22:52
感谢楼主,马上考试了,过来看看
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2