A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 习近平 初级黑马   /  2016-2-26 23:01  /  398 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目1:
        将项目路径下java_all目录下所有的.java文件复制到项目路径下Java_jad
        文件夹下,并将文件名从原来的.java修改成.jad*/
"******************************************************************************
/*题目2:
        编写一个程序,把一个目录里边的所有带.java文件拷贝到另一个目录中,
        拷贝成功后,把后缀名是.java的文件改为.txt文件。(注意事项:是先拷贝,
        拷贝成功后才可以改后缀名的)*/
        "(★将以下代码改改路径和扩展名即可★)
/*
思路:
        1、用File对象封装目录
        2、通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组
        3、遍历这个File数组,得到每一个File对象
        4、判断该File对象是否是文件
                a、如果是文件
                b、继续判断是否以.java结尾
                        是:复制文件
                               在复制完成后改名
                        否:不复制
*/
//导包
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 FileCopySingleFolderByByte
{
        public static void main(String[] args) throws IOException
        {       
                //用File对象封装目录
                File srcfile = new File("D:\\demos\\");
                //用File对象封装目录
                File destFile = new File("D:\\copyTo\\");
                //调用复制的方法
                copyFile(srcfile,destFile);
        }
        //复制方法
        public static void copyFile(File srcFile, File destFile) throws IOException
        {
                //通过listFiles()方法获取该目录下所有的文件或者文件夹的File对象数组
                File[] fileArray = srcFile.listFiles();
                //遍历这个File数组,得到每一个File对象
                for(File file : fileArray)
                {
                        //判断该File对象是否是文件
                        if(file.isFile())
                        {
                                //如果不是以java为后缀的不复制,执行下次循环
                                if(!file.getName().endsWith(".java"))
                                {
                                        continue;
                                }
                                //新文件
                                File newFile = new File(destFile, file.getName());
                                //用高效的字节输入流封装数据源
                                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
                                //用高效的字节输出流封装目的地
                                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();
                                //得到新文件名
                                String newName = newFile.getName().replace(".java",".txt");
                                //根据新文件名创建新文件对象
                                File tempFile = new File(destFile,newName);
                                //改名
                                newFile.renameTo(tempFile);
                        }
                }
        }
}
还是感觉IO流这好重要啊    大家一起努力  一起过点招

1 个回复

倒序浏览
IO流确实比较重要,努力备考店招!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马