文章参考:https://www.cnblogs.com/wangjinlong-padan/p/6382924.html
File类简介:
在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件名、 文件路径、访问权限和修改日期等,还可以浏览子目录层次结构。
File 类表示处理文件和文件系统的相关信息。也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。
File类构造方法:
常用的有三种:
-
File(String pathname):通过路径名创建一个新 File 实例(对象)。
-
File(File parent, String child):根据父目录路径File实例和子目录或文件路径创建一个新 File 实例。
-
File(String parent, String child) :根据父目录路径和子目录或文件路径创建一个新 File 实例。
import java.io.File;
public class Work {
public static void main(String[] args){
File file = new File("E:\\网易有道词典\\Youdao\\Dict\\guid.dat"); //第一种方式。
System.out.println(file.getPath()); //getPath()返回该file的路径。
file=new File(new File("E:\\网易有道词典\\Youdao"),"Dict\\guid.dat"); //第二种方式。
System.out.println(file.getPath());‘
file=new File("E:\\网易有道词典\\Youdao\\Dict","guid.dat"); //第三种方式。
System.out.println(file.getPath());
}
}
运行结果:
E:\网易有道词典\Youdao\Dict\guid.dat
E:\网易有道词典\Youdao\Dict\guid.dat
E:\网易有道词典\Youdao\Dict\guid.dat
File类常用方法:
创建
- createNewFile()指定路径不存在该文件时创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false。
- mkdir() 在指定路径下创建一个之前没有的文件夹成功返回true;当不存在此路径时,创建失败返回false。
- mkdirs() 在指定路径下创建一个之前不存在的多级文件夹(路径不存在时创建出来)并返回true 否则false。
- renameTo(File dest)如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名, 如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切+改名,a.renameTo(b)将a移动到b的位置并且改成b的名字。
删除
- delete() 删除文件或者一个空文件夹,不能删除非空文件夹,马上删除文件,返回一个布尔值。
- deleteOnExit()jvm退出时删除文件或者文件夹,用于删除临时文件,无返回值。
判断
- exists() 文件或文件夹是否存在。
- isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。
- isAbsolute() 测试此抽象路径名是否为绝对路径名。
- isDirectory(): 判断此File对象代表的路径表示是不是文件夹,只有File对象代表路径存在且是一个目录时才返回true,否则返回false。
- isFile():判断此File对象代表的路径是否是一个标准文件,只有File对代表路径存在且是一个标准文件时才返回true,否则返回false。
获取
- getName() 返回此对象表示的文件或目录最后一级文件夹名称。
- getPath():返回File对象所表示的字符串路径。
- getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系
- length() 获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
- getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
- getParentFile():返回File对象所在的父目录File实例;如果File对象没有父目录,则返回 null。
- lastModified()获取最后一次被修改的时间。
其他
separator:指定文件或目录路径时使用斜线或反斜线来写,但是考虑到跨平台,斜线反斜线最好使用File类的separator属性来表示。
import java.io.File;
public class Work {
public static void main(String[] args){
File file = new File("E:\\网易有道词典\\Youdao\\Dict\\guid.dat");
if(file.isDirectory()) //1、判断该路径是否为文件夹。
{
System.out.println("YES");
}else{
System.out.println("NO");
}
if(file.isFile()) //2、判断该路径是否为文件。
{
System.out.println("yes");
}else{
System.out.println("no");
}
System.out.println(file.getPath()); //3、路径名称。
System.out.println(file.getName()); //4、最后一层名称。
System.out.println(file.getParent()); //5、去掉最后一层的路径名称。
File file1 = file.getParentFile(); //6、返回File实例,路径为去掉最后一层的路径。
System.out.println(file1.getPath());
}
}
执行结果:
NO
yes
E:\网易有道词典\Youdao\Dict\guid.dat
guid.dat
E:\网易有道词典\Youdao\Dict
E:\网易有道词典\Youdao\Dict
import java.io.File;
import java.io.IOException;
public class Work {
public static void main(String[] args) throws IOException{
File file = new File("D:\\Tom\\Jim.txt");
System.out.println(file.renameTo(new File("D:\\Tom\\Jom.txt"))); //7、改名,括号中必须是File实例。
Boolean flag = new File("D:\\Tom\\Lacy").mkdir(); //8、创建一层文件夹。
System.out.println(flag);
flag = new File("D:\\Tom\\a\\b").mkdirs(); //9、可以创建多层文件夹。
System.out.println(flag);
flag = new File("D:\\Tom\\a.doxc").createNewFile(); //10、创建一层文件。
System.out.println(flag);
System.out.println(new File("D:\\Tom\\a.doxc").exists()); //11、判断该文件或者文件夹是否存在。
}
}
执行结果:
true
true
true
true
true
import java.io.File;
import java.io.IOException;
public class Work {
public static void main(String[] args) throws IOException{
File file = new File("D:\\Tom\\Jom.txt");
File file1 = new File("D:"+File.separator+"Tom"); //15、File.separator会根据操作系统自动生成\\或者/。
System.out.println(file.delete()); //12、删除文件或者内容为空的文件夹。
String[] names = file1.list(); //13、返回该文件夹下的文件名称和文件夹名称。
for (String name : names) {
System.out.println(name);
}
File[] files = file1.listFiles(); //14、返回该文件夹下的文件和文件夹的File实例数组。
for (File file2 : files) {
System.out.println(file2.getPath());//输出路径。
}
}
}
执行结果:
true
a
a.doxc
Lacy
D:\Tom\a
D:\Tom\a.doxc
D:\Tom\Lacy