黑马程序员技术交流社区
标题:
一个疑惑求解
[打印本页]
作者:
胡刚涛
时间:
2012-8-10 20:47
标题:
一个疑惑求解
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-10 21:34
你确定D:\\java\\javawork是一个文件,还是一个目录?
如果是文件的话,在
for (File s : sd) {
System.out.println(s);
}
会出现空指针异常,因为file不是一个目录,怎么能获取目录中的文件的路径呢?这道题的if...else那里有逻辑错误
所以代码应改为
if (file.isFile()) { // 如果是文件
System.out.println("是文件");
} else { // 如果不是文件(非文件,即目录)
System.out.println("不是文件");
File[] sd = file.listFiles(); // 得到目录里的所有文件
for (File s : sd) {
System.out.println(s); // 遍历输出目录里的所有文件
}
}
复制代码
这就对了。
作者:
胡刚涛
时间:
2012-8-10 22:19
朱志辉 发表于 2012-8-10 21:34
你确定D:\\java\\javawork是一个文件,还是一个目录?
如果是文件的话,在
for (File s : sd) {
ok 不好意思 不小心弄反了
作者:
胡刚涛
时间:
2012-8-10 22:19
问题已经解决!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2