File 类:文件和目录路径名的抽象表示。java
注意:File 类只能操做文件的属性,文件的内容是不能操做的。数组
一、File 类的字段测试
咱们知道,各个平台之间的路径分隔符是不同的。3d
①、对于UNIX平台,绝对路径名的前缀始终为"/"
。 相对路径名没有前缀。 表示根目录的抽象路径名具备前缀"/"
和空名称序列。code
②、对于Microsoft Windows平台,包含驱动器说明符的路径名的前缀由后面跟着":"
的驱动器号组成,若是路径名是绝对的,则可能后跟"\\"
。 UNC路径名的前缀为"\\\\"
; 主机名和共享名称是名称序列中的前两个名称 没有有指定驱动器的相对路径名没有前缀。orm
那么为了屏蔽各个平台之间的分隔符差别,咱们在构造 File 类的时候(如何构造,请看下面第二点),就可使用上述 Java 为咱们提供的字段。blog
System.out.println(File.separator);//输出 \ System.out.println(File.pathSeparator);//输出 ;
那么咱们能够看出:字符串
File.pathSeparator指的是分隔连续多个路径字符串的分隔符get
File.separator是用来分隔同一个路径字符串中的目录的it
二、File 类的构造方法
如何使用上述构造方法,请看以下例子:
//不使用 Java 提供的分隔符字段,注意:这样写只能在 Windows 平台有效 File f1 = new File("D:\\IO\\a.txt"); //使用 Java 提供的分隔符 File f2 = new File("D:"+File.separator+"IO"+File.separator+"a.txt"); System.out.println(f1);//输出 D:\IO\a.txt System.out.println(f2);//输出 D:\IO\a.txt //File(File parent, String child) //从父抽象路径名和子路径名字符串建立新的 File实例。 File f3 = new File("D:"); File f4 = new File(f3,"IO"); System.out.println(f4); //D:\IO //File(String pathname) //经过将给定的路径名字符串转换为抽象路径名来建立新的 File实例。 File f5 = new File("D:"+File.separator+"IO"+File.separator+"a.txt"); System.out.println(f5); //D:\IO\a.txt //File(String parent, String child) //从父路径名字符串和子路径名字符串建立新的 File实例。 File f6 = new File("D:","IO\\a.txt"); System.out.println(f6); //D:\IO\a.txt
三、File 类的经常使用方法
①、建立方法
1.boolean createNewFile() 不存在返回true 存在返回false
2.boolean mkdir() 建立目录,若是上一级目录不存在,则会建立失败
3.boolean mkdirs() 建立多级目录,若是上一级目录不存在也会自动建立
②、删除方法
1.boolean delete() 删除文件或目录,若是表示目录,则目录下必须为空才能删除
2.boolean deleteOnExit() 文件使用完成后删除
③、判断方法
1.boolean canExecute()判断文件是否可执行
2.boolean canRead()判断文件是否可读
3.boolean canWrite() 判断文件是否可写
4.boolean exists() 判断文件或目录是否存在
5.boolean isDirectory() 判断此路径是否为一个目录
6.boolean isFile() 判断是否为一个文件
7.boolean isHidden() 判断是否为隐藏文件
8.boolean isAbsolute()判断是不是绝对路径 文件不存在也能判断
④、获取方法
1.String getName() 获取此路径表示的文件或目录名称
2.String getPath() 将此路径名转换为路径名字符串
3.String getAbsolutePath() 返回此抽象路径名的绝对形式
4.String getParent()//若是没有父目录返回null
5.long lastModified()//获取最后一次修改的时间
6.long length() 返回由此抽象路径名表示的文件的长度。
7.boolean renameTo(File f) 重命名由此抽象路径名表示的文件。
8.File[] liseRoots()//获取机器盘符
9.String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
10.String[] list(FilenameFilter filter) 返回一个字符串数组,命名由此抽象路径名表示的目录中知足指定过滤器的文件和目录。
//File(File parent, String child) //从父抽象路径名和子路径名字符串建立新的 File实例。 File dir = new File("D:"+File.separator+"IO"); File file = new File(dir,"a.txt"); //判断dir 是否存在且表示一个目录 if(!(dir.exists()||dir.isDirectory())){ //若是 dir 不存在,则建立这个目录 dir.mkdirs(); //根据目录和文件名,建立 a.txt文件 file.createNewFile(); } //返回由此抽象路径名表示的文件或目录的名称。 这只是路径名称序列中的最后一个名字。 若是路径名的名称序列为空,则返回空字符串。 System.out.println(file.getName()); //a.txt //返回此抽象路径名的父null的路径名字符串,若是此路径名未命名为父目录,则返回null。 System.out.println(file.getParent());//D:\IO //将此抽象路径名转换为路径名字符串。 结果字符串使用default name-separator character以名称顺序分隔名称。 System.out.println(file.getPath()); //D:\IO\a.txt
四、File 的一些技巧
①、打印给定目录下的全部文件夹和文件夹里面的内容
public static void getFileList(File file){ //第一级子目录 File[] files = file.listFiles(); for(File f:files){ //打印目录和文件 System.out.println(f); if(f.isDirectory()){ getFileList(f); } } }
测试:
public static void main(String[] args) throws Exception { File f = new File("D:"+File.separator+"WebStormFile"); getFileList(f); }