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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

抛砖引玉:
package maxwell.demo.io;
import java.io.*;
//遍历文件中的内容,并且将后缀名是java的文件改成txt
public class FileInputStreamDemo {
        public static void main(String[] args)throws Exception{
                //封装源文件目录
                File yuan = new File("d:"+File.separator+"news");
                //封装目的文件目录
                File mudi = new File("c:"+File.separator);
                //传入到方法里面
                method(yuan,mudi);
        }
        public static void method(File yuan,File mudi)throws Exception{
                //遍历目录,查看是否是多层目录
                if(yuan.isDirectory()){
                        //如果是目录的话,就创建同名的目录,取得文件的名字
                        File newmudi = new File(mudi,yuan.getName());
                        newmudi.mkdirs();
                        //建立数组,将源中的目录存入
                        File[] files = yuan.listFiles();
                        //遍历数组并且利用递归进行多级创建
                        for(File f : files){
                                method(f,newmudi);
                        }
                }else{
                        //否则就是文件,创建文件
                        File file = new File(mudi,yuan.getName());
                        if(yuan.getName().endsWith("java")){
                                //获取名字
                                String s =yuan.getName().substring(0, yuan.getName().length()-4)+"txt";
                                //创建txt结尾的同名文件
                                File files = new File(mudi,s);
                                files.createNewFile();
                                //调用方法
                                fileFun(yuan,files);
                        }else{
                                fileFun(yuan,file);
                        }
                }
        }
        public static void fileFun(File yuan,File mudi)throws Exception{
                //创建字符流
                FileInputStream fis = new FileInputStream(yuan);
                FileOutputStream fos = new FileOutputStream(mudi);
                int len = 0;
                byte[]bytes = new byte[1024];
                while((len = fis.read(bytes))!=-1){
                        fos.write(bytes,0,len);
                }
                        fos.close();
                        fis.close();
        }
}

4 个回复

倒序浏览
  1. import java.io.File;

  2. /*
  3. * 需求:遍历一个目录,并将该目录下所有后缀为.java的文件改为后缀为.txt
  4. * */

  5. public class ErgodicFile {
  6.         public static void main(String[] args)
  7.         {
  8.                 Ergodic(new File("D:/Test_ForComputer"));
  9.         }

  10.         public static void Ergodic(File dir)
  11.         {
  12.                 File[] files = dir.listFiles();
  13.                 for (File file : files) {
  14.                         if (file.isDirectory())
  15.                                 Ergodic(file);
  16.                         else {
  17.                                 int index = file.getAbsolutePath().indexOf(".java");
  18.                                 if (index != -1) {
  19.                                         String AbsPath = file.getAbsolutePath().substring(0, index) + ".txt";
  20.                                         // System.out.println(AbsPath);
  21.                                         File dest = new File(AbsPath);
  22.                                         file.renameTo(dest);
  23.                                 }
  24.                         }
  25.                 }
  26.         }
  27. }
复制代码

评分

参与人数 1黑马币 +3 收起 理由
船长 + 3 赞一个!

查看全部评分

回复 使用道具 举报

这是在源目录里直接改后缀了?
回复 使用道具 举报

RE: 遍历文件目录,并且将后缀名改掉,求一个最简单的方法

DamonZh 发表于 2014-11-30 20:01
这是在源目录里直接改后缀了?

嗯哪,我看需求没有什么特殊要求,就直接在源目录改的
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马