黑马程序员技术交流社区

标题: IO流批量复制文件 [打印本页]

作者: 缤纷落叶    时间: 2015-4-30 00:02
标题: IO流批量复制文件
/**做为一名资深学渣,深深的明白一名初学者的在学习java基础的无奈,在相对紧张的时间里对一个知识点给予理解的空间非常有限,这很容易让自己产生
浮躁的情绪,怎么才能克服,不要问我,每个人的方法都不同,比如我使用的是独门秘籍《护士宝典》,三级护士守护和实习护士必杀技之一针见血,
这两招是我最常用的
攻守招式,防浮躁抗睡觉,效果立竿见影童叟无欺。好了,说说我的学习感受吧!首先,每一章的内容很多,强记那是英语差的人适用,最好选择学思想,
在一步两步一步两步的来,就像嫖客的步滑。因为我始终相信一切问题只是时间的问题,每个问题都有可能解决,要看你是否持久,好男人就是我隔壁。
废话一堆,正题,这是IO流封装的文件处理类:代码从天而降
做程序员就是要---->吹牛逼吹到死都不认输
*/

package 练习;
/**
导包没什么好说的
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
/**
我用的是中文定义的类,这里除了我没人这么干,想做黑客就是要勇于打破规则
我注定将来是要成为一名顶级黑客的男人
*/
public class 发给是个负担过 {

        public static void main(String[] args)
        {
//获取此时的系统时间
                Date dt = new Date();
                long l1 = dt.getTime();
                g("d:\\KuGou", ".mp3","f:\\kuwo");//这才是程序运行最重要的部分,指定文件源,文件类型,目标源(读取,分类,写入)
//获取复制完后此时系统的时间
                Date dt2 = new Date();
                long l2 = dt2.getTime();
//计算用了多少时间,并输出
                double d = (l2-l1)/1000;
                System.out.println(d+ "秒");
        }
/**
这是个静态方法,想怎么改就怎么改,生活就是这么随意,
读取使用的是高效字节数组流,我给他从新命名了,我就是不叫高效字节流,乱搞就是这么任性,
写入的不用我说,你们懂的。
*/
        public static void g(String str,String sts,String ste)
        {
//封装文件路径成对象
                File f1 = new File(str);
//获取指定路径下的所有文件路径对象,就是获取所有文件(这样好理解一点)
                File[] f2 = f1.listFiles();
//遍历所有文件
                for(File f3 : f2)
                {
//判断是否是文件夹
                        if(f3.isDirectory())
                        {
                                g(f3.getPath(),sts,ste);
                        }
                        else
                        {
//文件是否以.mp3后缀名结尾       
                        if(f3.getName().endsWith(sts))
                                {
                                        System.out.println(f3.getName()+":"+f3.getAbsolutePath());
//创建高效......................................................................
                                        BufferedInputStream bi =null;
                                        BufferedOutputStream bo =null;
                                        try
                                        {
//获取.mp3格式的文件名并创建对象
                                                File ff = new File(ste,f3.getName());
                                                System.out.println(ff.createNewFile());
//创建读取写入的对象
                                                bi = new BufferedInputStream(new FileInputStream(f3));
                                                bo = new BufferedOutputStream(new FileOutputStream(ff));
//一次读取1024个字节数组                                               
                                                byte[] by = new byte[1024];
                                                int len = 0;
        //写到刚创建的文件里                                       
                                                while((len = bi.read(by))!=-1)
                                                {
                                                        bo.write(by,0,len);
                                                        bo.flush();
                                                }
                                        }
//处理可能出现的异常
                                        catch(IOException ioe)
                                        {
                                                ioe.printStackTrace();
                                        }
//一定要释放系统资源
                                        finally
                                        {
                                                if(bi!=null)
                                                {
                                                        try{
                                                                bi.close();
                                                        }
                                                        catch(IOException ioe)
                                                        {
                                                                ioe.printStackTrace();
                                                        }
                                                }
                                                if(bo!=null)
                                                {
                                                        try
                                                        {
                                                                bo.close();
                                                        }
                                                        catch(IOException ioe)
                                                        {
                                                                ioe.printStackTrace();
                                                        }
                                                }
                                        }
                                }
                        }
                }
        }
}

/**
学完这些有什么用,不安常理说,这也是黑客技术的冰山一角,怎么获取别人电脑的所有文件,获取你需要的文件复制道自己的硬盘上,当然
要结合网络编程你就能写垃圾电脑病毒了,想想就有点小激动,遨游别人的世界,充实自己的硬盘.......................................
*/

作者: 白昼那知夜的黑    时间: 2015-5-25 12:51
:lol有点小激动
作者: L番茄X    时间: 2015-5-25 12:59
表示好难懂呢.
作者: 凉仁日记    时间: 2015-5-25 21:28
好厉害的样子,我说的是最后那句话,小激动
作者: sjaiwl    时间: 2015-5-27 12:48
不错不错。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2