File有三个构造方法(效果都一样)
public File(String pathname) 根据一个路径得到File对象
// File(String pathname):根据一个路径得到File对象
// 把e:\\demo\\a.txt封装成一个File对象
File f = new File("e:\\demo\\a.txt");
public File(String parent,
String child) 根据一个目录和一个子文件/目录得到File对象
// File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
File f2 = new File("e:\\demo","a.txt");
public File(File parent,
String child) 根据一个父File对象和一个子文件/目录得到File对象
// File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
File f3 = new File("e:\\demo");
File f4 = new File(f3,"a.txt");
File类的创建功能:
public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了(文件不等于文件夹)
注意:要想在某个目录下创建内容(文件),该目录首先必须存在。否则会报异常:
Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
//如果e:\demo不存在,则Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
File file = new File("e:\\demo\\a.txt");
file.creatNewFile();
public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
注意:要想在某个目录下创建文件夹,该目录首先必须存在。否则会创建失败,方法返回false:
// File file5 = new File("e:\\test");
File file6 = new File("e:\\test\\aaa");
// System.out.println("mkdir:" + file5.mkdir());
System.out.println("mkdir:" + file6.mkdir());//false
public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
注意:无法创建文件,下列代码的结果只是创建了一个名为“a.txt"的文件夹
File file8 = new File("e:\\liuyi\\a.txt");
System.out.println("mkdirs:" + file8.mkdirs());
删除功能:public boolean delete()
注意:要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
重命名功能:public boolean renameTo(File dest)
如果路径名相同,就是改名。
如果路径名不同,就是改名并剪切。如下:
"a.txt"剪切到"e:\\"下,并且重命名為"b.txt"
注意:前提是"e:\\"下不能已經存在"b.txt",否則返回false,重命名失敗
File file2 = new File("a.txt");
if (!file2.exists()) {
System.out.println(file2.createNewFile());
}
File newFile2 = new File("e:\\b.txt");
if (!newFile2.exists()) {
System.out.println("renameTo:" + file2.renameTo(newFile2));
}
完整代碼:
public class FileDemo {
public static void main(String[] args) throws IOException {
// 创建一个文件对象
File file2 = new File("a.txt");
if (!file2.exists()) {
System.out.println(file2.createNewFile());
}
// 需求:我要修改这个文件的名称为"b.txt"
File newFile2 = new File("e:\\b.txt");
if (!newFile2.exists()) {
System.out.println("renameTo:" + file2.renameTo(newFile2));
}else{
//newFile2.delete();
System.out.println("renameTo after delete:" + file2.renameTo(newFile2));
}
}
}
判断功能:
public boolean isDirectory():判断是否是目录
public boolean isFile():判断是否是文件
public boolean exists():判断是否存在
public boolean canRead():判断是否可读
public boolean canWrite():判断是否可写
public boolean isHidden():判断是否隐藏
获取功能:
public String getAbsolutePath():获取绝对路径
public String getPath():获取相对路径
public String getName():获取名称
public long length():获取长度。字节数
public long lastModified():获取最后一次的修改时间,毫秒值
获取功能:
public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组