求教 简单java.io问题

[复制链接]
查看11 | 回复5 | 2010-7-28 17:12:43 | 显示全部楼层 |阅读模式
import java.io.*;
public class _13File {
public static void main(String[] args){
String separator = File.separator;
String directory = "aa" + separator + "BB";
String fileName = "a.txt";
File f1 = new File(directory,fileName);
if (f1.exists()) {
System.out.println("文件已存在");
} else {

f1.getParentFile().mkdirs();

try{

f1.createNewFile();

}catch(IOException IOE) {

IOE.printStackTrace();
}
}
}
}
这样一段程序中f1.getParentFile().mkdirs();什么意思?
与直接f1.mkdirs();有什么区别?
为什么用f1.mkdirs();会建立a.txt文件夹 而不是a.txt文件?

回复

使用道具 举报

千问 | 2010-7-28 17:12:43 | 显示全部楼层
Java的File,既可以表示文件,也可以表示目录。你的程序里:f1 就表示 aa/bb/a.txt这样一个文件/目录。f1.getParentFile()就表示 aa/bb这样一个目录所以 f1.getParentFile().mkdirs()就是创建 aa/bb这个目录。而f1.mkdirs()就是创建 aa/bb/a.txt/这样一个目录f1.createNewFile()则是在aa/bb下建立一个a.txt的文件。明白了不?
回复

使用道具 举报

千问 | 2010-7-28 17:12:43 | 显示全部楼层
mkdir() 只能在已经存在的目录中创建创建文件夹。 mkdirs() 可以在不存在的目录中创建文件夹。诸如:a\\b,既可以创建多级目录。mkdirs public boolean mkdirs() 创建一个目录,它的路径名由当前 File 对象指定,包括任一必须的父路径。 返回值: 如果该目录(或多级目录)能
回复

使用道具 举报

千问 | 2010-7-28 17:12:43 | 显示全部楼层
mkdirs 是创建目录用的,要创建文件用 createNewFile();
回复

使用道具 举报

千问 | 2010-7-28 17:12:43 | 显示全部楼层
f1.mkdirs(); 是用来创建文件夹的,f1也是目录f1.getParentFile().mkdirs();创建其上层的所有目录;
回复

使用道具 举报

千问 | 2010-7-28 17:12:43 | 显示全部楼层
f1.getParentFile()能得到文件的目录 mkdirs()生成文件夹的方法 生成文件的话需用createNewFile()f1.mkdirs()应该最后生成的全部是文件夹.TXT的文件夹 而不是.txt的文件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行