File类
File类:描述文件系统中的一个文件或目录,我们可以通过File类来查看磁盘上的一个文件或目录,可以获取文件的信息:大小,文件名等,但是不能通过File获取文件内容,还可以通过File类来创建文件或目录,删除文件或目录。
File类各方法举例以及说明如下:
一、创建、重命名文件
代码一:
import java.io.File;
import java.io.IOException;
public class testF {
public static void main(String[] args) throws IOException{
//创建文件
File file = new File("E:\\test.txt");
System.out.println("是否成功创建文件?"+file.createNewFile());
//createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false。
System.out.println("是否成功创建单级文件夹?"+file.mkdir());
//mkdir()在指定位置创建一个单级文件夹。
System.out.println("是否成功创建多级文件夹?"+file.mkdirs());
//mkdirs()在指定位置创建一个多级文件夹。
File dest = new File("E:\\c.txt");
System.out.println("是否成功创建文件?"+dest.createNewFile());
System.out.println("是否成功重命名?"+file.renameTo(dest));
//renameTo(File dest)如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名,
//如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,而且还不能操作文件夹。
}
}
注意:
File file = new File(“E:\test.txt”);
并不会真正去创建物理文件的,只是存在一个路径而已,只有当调用了myFile.createNewFile()之后才会真正去创建文件。
上述代码结果如下:
创建文件成功后,如果不修改文件名,再执行一次代码,则会因为文件已存在而报错。
重命名失败是因为这个文件已经成功创建了,如果文件名不改动,先把已经成功创建的文件删除,在上述代码一的基础上,改为:
File dest = new File("E:\\c.txt");
//System.out.println("是否成功创建文件?"+dest.createNewFile());
System.out.println("是否成功重命名?"+file.renameTo(dest));
运行结果如下:
二、删除文件
File类的两个方法delete和deleteOnExit的作用都是删除文件,但两者是有差别的。
delete:删除File对象表示的文件或目录,如果表示的是目录,需要保证目录是空的,否则无法删除。若成功删除返回true,否则返回false。
deleteOnExit:当虚拟机终止时,删除File对象表示的文件或目录,如果表示的是目录,需要保证目录是空的,否则无法删除,无返回值。
两个方法的区别是,delete是立即执行删除,而deleteOnExit是程序退出虚拟机时才会删除.
代码二:
//删除方法
File file = new File("E:\\c.txt");
System.out.println("是否成功删除文件?"+file.delete());
//注:file是File类的对象哦
file.deleteOnExit();
注意:delete()函数删除的文件,不会放进回收站,而是直接删除的。
三、判断文件或文件夹类型等
代码三、
//判断方法
File file = new File("E:\\test.txt");
System.out.println("是否成功创建文件?"+file.createNewFile());
System.out.println("文件/文件夹是否存在?"+file.exists());
//exists() 文件或文件夹是否存在。
System.out.println("是一个文件吗?"+file.isFile());
// isFile() 是否是一个文件,如果不存在,则始终为false。
System.out.println("是一个文件夹吗?"+file.isDirectory());
//isDirectory() 是否是一个目录,如果不存在,则始终为false。
System.out.println("是隐藏文件吗?"+file.isHidden());
// isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。
System.out.println("此路径是绝对路径名?"+file.isAbsolute());
//isAbsolute() 测试此抽象路径名是否为绝对路径名。
四、关于文件名称、路径等
代码四:
//获取方法
File file = new File("E:\\test.txt");
System.out.println("文件或者文件夹得名称是:"+file.getName());
//getName() 获取文件或文件夹的名称,不包含上级路径。
System.out.println("绝对路径是:"+file.getPath());
System.out.println("绝对路径是:"+file.getAbsolutePath());
//getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系
System.out.println("文件大小是(以字节为单位):"+file.length());
//length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
System.out.println("父路径是"+file.getParent());
//getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
程序运行结果例子:
注意:getPath() 方法跟创建 File 对象时传入的路径参数有关
举例如下:
File file1 = new File(".\\test.txt");
File file2 = new File("E:\\test.txt");
System.out.println("-----默认相对路径:取得路径不同------");
System.out.println(file1.getPath());
System.out.println(file1.getAbsolutePath());
System.out.println("-----默认绝对路径:取得路径相同------");
System.out.println(file2.getPath());
System.out.println(file2.getAbsolutePath());