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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

4、编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt。

我有三个java文件,为什么只有一个修改成功,其他都失败

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
public class Number4 {
public static void main(String[] args) {
  //要被拷贝的文件夹
  File startFile = new File("f:\\haha");
  File[] f = startFile.listFiles(new FilenameFilter(){
   //重写
   public boolean accept(File dir, String name){
    return new File(dir,name).isFile() && name.endsWith(".java");
   }
  });
  
  //判断目的地是否存在
  File endFile = new File("f:\\hehe");
  if(!endFile.exists()){
   endFile.mkdir();
  }
  
  //创建文件输入输出对象
  BufferedReader br = null;
  BufferedWriter bw = null;
  
  try {
   //遍历文件
   for(File file : f){
    //得到文件名
    String name = file.getName();
    //将文件名和路径拼接
    File newFile = new File(endFile, name);
    br = new BufferedReader(new FileReader(file));
    bw = new BufferedWriter(new FileWriter(newFile));
   
    //接收字符串
    String s = null;
    //赋值文件内容
    while((s=br.readLine()) != null){
     bw.write(s);
    }
   
   }
   
  } catch (IOException e) {
   e.printStackTrace();
  } finally{
   
   try{
    br.close();
    bw.close();
   }catch(IOException e){
    e.printStackTrace();
   }
  }
  
  
  //改名
  
  File[] ff = endFile.listFiles();
  for(File fl : ff){
   String name = fl.getName();
   String newName = name.replace(".java", ".txt");
   File newFile = new File(endFile, newName);
   if(fl.renameTo(newFile)) {
      System.out.println("修改成功");
   } else {
    System.out.println("修改失败");
   }
  }
  
}

}

评分

参与人数 1黑马币 +3 收起 理由
叶顺达 + 3 神马都是浮云

查看全部评分

1 个回复

倒序浏览
好好好  我也不会
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马