File类代表一个特定的文件或者目录(文件夹),并提供了若干方法对该文件或目录进行操作。
常用的有三种:
1、File(String pathname):通过路径名创建一个新 File 实例。
2、File(File parent, String child):根据父目录路径File实例和子目录或文件路径创建一个新 File 实例。
3、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
1、isDirectory(): 判断此File对象代表的路径表示是不是文件夹,只有File对象代表路径存在且是一个目录时才返回true,否则返回false。
2、isFile():判断此File对象代表的路径是否是一个标准文件,只有File对代表路径存在且是一个标准文件时才返回true,否则返回false。
3、getPath():返回File对象所表示的字符串路径。
4、getName():返回此对象表示的文件或目录最后一级文件夹名称。
5、getParent():返回此File对象的父目录路径名;如果此路径名没有指定父目录,则返回 null。
6、getParentFile():返回File对象所在的父目录File实例;如果File对象没有父目录,则返回 null。
7、 renameTo():重新命名此File对象表示的文件,重命名成功返回true,否则返回false。
8、 mkdir():创建此File类对象指定的目录(文件夹),不包含父目录。创建成功回true,否则返回false。
9、 mkdirs():创建此File对象指定的目录,包括所有必需但不存在的父目录,创建成功返回true;否则返回false。注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。
10、createNewFile():如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false;如果所创建文件所在目录不存在则创建失败并出现IOException异常。
11、exists():判断文件或目录是否存在。
public class TestFile { public static void main(String[] args) throws IOException { File f=new File("aa/bb/cc/a.txt");//未指定路径则在本类文件下创建 //f.mkdirs();//全部都创建成了文件夹 File p= f.getParentFile(); //返回File实例,路径为去掉最后一层的路径 if(!p.exists()) //如果父级目录可达,可以直接用createNewFile()创建文件,也 // 可以用mkdir()来创建目录 p.mkdirs(); //如果父级目录不存在,需要先用getParentFile()获取父级File对 // 象,用父级对象.mkdirs()可以递归创建全部的父级目录 if(!f.exists()) f.createNewFile(); System.out.println(f.exists()); System.out.println(p.getPath()); System.out.println(f.getAbsolutePath());//绝对路径 System.out.println(f.getParent());//去掉最后一层的路径 System.out.println(f.getPath());//相对路径 System.out.println(f.getName());//最后一层名称 String[] fileNames=f.list();//返回该路径下文件或者文件夹的名字数组 String[] fileNames2=p.list(); System.out.println(Arrays.toString(fileNames)); System.out.println(Arrays.toString(fileNames2)); System.out.println(f.length()); System.out.println(p.length());
结果如下: