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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马陈旭东 中级黑马   /  2012-7-18 15:30  /  1260 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) throws IOException {
  
  File dir= new File("D:\\"); //我想将D盘封装成对象遍历里面所有的文件。但是会报出空指针异常!这是怎么回事?
//但是我将D盘一个目录封装就没有事!就解
   
  FileterBySuffix fileter = new FileterBySuffix(".java");
  //创建一个接受文件的文件夹
  File dire = new File("e:\\jad");
   if (!dire.exists()) {
    dire.mkdir();
   }
  getFile(dir,fileter,dire);

}

1 个回复

倒序浏览
首先 这样封装是没有任何问题的
想问一下 你是不是准备遍历d盘所有文件  然后判断.java结尾的文件  然后再把它取出放到c盘啊

如果是的话 你那样写程序是不行的
FileterBySuffix fileter = new FileterBySuffix(".java");
你通过这样new一个对象能遍历d盘中的文件吗  
封装及白努力d盘文件修改如下:
public static void main(String[] args) throws IOException {
  
  File dir= new File("D:\\");
}
private static void checkFiles(File srcDir, File destDir)throws Exception{
          if (!srcDir.exists()) {                             // 测试此抽象路径名表示的文件或目录是否存在
            throw new RuntimeException("文件不存在,请重新输入!");
             }
          else if (srcDir.isDirectory()){
            File[] files = srcDir.listFiles();
            if (files != null){
            for (File file : files){                         // 对数组进行遍历
              checkFiles(file, destDir);
              }
            }
            }
          else if (srcDir.getName().endsWith(".java")) {
            copyFiles(srcDir, destDir);  //  下面你再把这个copyfile方法写一下 就能完成复制了
          }
        }

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马