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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡刚涛 中级黑马   /  2012-8-10 20:47  /  1148 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.File;
import java.io.IOException;

public class Testdayont {
/**
  * @param args
  */

   private File file;
public File getFile() {
  return file;
}
public void setFile(File file) {
  this.file = file;
}
public void foo(File file) throws IOException{


  System.out.println(file.isFile());
  if (file.isFile()){
  File[] sd=file.listFiles();
  for(File s:sd){
  System.out.println(s);
  }
  }
  else{

  System.out.println("不是文件");
  }
  }

  public Testdayont() {
  super();
}

  public Testdayont(File file) {
  super();
  this.file = file;
}

  public static void main(String[] args) throws IOException {
  File file=new File("D:\\java\\javawork");
  Testdayont sw= new Testdayont();
  sw.setFile(file);
  sw.foo(file);
  }
}
答应结果是
false
不是文件
但是"D:\\java\\javawork确实是在我电脑的硬盘中存在是一个文件啊?不懂!!!

点评

您好,您发帖速度过快, 刷分是不允许的.请您多解答别的同学的问题  发表于 2012-8-11 10:22

3 个回复

倒序浏览
你确定D:\\java\\javawork是一个文件,还是一个目录?
如果是文件的话,在
for (File s : sd) {
        System.out.println(s);
}
会出现空指针异常,因为file不是一个目录,怎么能获取目录中的文件的路径呢?这道题的if...else那里有逻辑错误
所以代码应改为
  1. if (file.isFile()) {        // 如果是文件
  2.                         System.out.println("是文件");
  3.                 } else {        // 如果不是文件(非文件,即目录)
  4.                         System.out.println("不是文件");
  5.                         File[] sd = file.listFiles();        // 得到目录里的所有文件
  6.                         for (File s : sd) {
  7.                                 System.out.println(s);        // 遍历输出目录里的所有文件
  8.                         }
  9.                 }
复制代码
这就对了。
回复 使用道具 举报
朱志辉 发表于 2012-8-10 21:34
你确定D:\\java\\javawork是一个文件,还是一个目录?
如果是文件的话,在
for (File s : sd) {

ok  不好意思 不小心弄反了
回复 使用道具 举报
问题已经解决!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马