File类: 表示文件和目录路径名的抽象表示形式。提供了一些列队文件的操作方法
一:分隔符
路径分隔符,在不同的系统上分隔符表现不一样,防止路径出现问题不建议手动以"/"或者"\"来拼接路径,以Char结尾表示是返回的是一个字节的路径符号,
System.out.println(File.separator); // 输出 " \"
System.out.println(File.separatorChar); //输出 " \ "
System.out.println(File.pathSeparator); //输出 ";"
System.out.println(File.pathSeparatorChar); //输出" ;"
二:创建File对象实例
注意:上面说过File对象可以表示具体一个文件对象也可以表示具体文件目录(文件夹)
即:pathName="D:\test" (目录/文件夹),pathName="D:\test\test.txt"(具体对象)
1:File(Stringpathname) 通过给定pathname来创建File实例, 最常用
2:File(URIuri) 通过统一资源标识符来创建File实例
3:File(String parent,String child)
parent:一个目录路径
child:可以是个纯文件名,也可以是个带有路径的文件名
如果parent为null,创建File对象时路径在当前环境的根路径
File file=new File("","test.txt"); // E:\test.txt
File file=new File("D:\\FileTest\\","test.txt"); //D:\FileTest\test.txt
File file=new File("","FileTest\\test.txt"); //E:\FileTest\test.txt
File file=new File("D:\\","FileTest\\test.txt"); //D:\FileTest\test.txt
***:我们parent为null的地方输出是E:\\ 这就是我当前程序运行的根路径
4:File(Fileparent,Stringchild)
同上(3) parent 只是个File的对象 也可以为null
3:File常用方法
boolean exists() 判断当前File对象是否存在(对象可以是文件也可以是路径)
boolean createNewFile() 创建一个文件,上级目录必须存在才能创建文件
boolean mkdir() 创建一个单层文件夹 (不能创建多层文件夹)
boolean mkdirs() 创建一个多层文件夹(可以创建单层)
boolean isDirectory() 是否个文件夹
boolean isFile() 是否是个文件
boolean isHidden() 当前文件是否隐藏
long length() 文件内容的长度(字符)
boolean renameTo(File dest) 重命名
long lastModified()文件最后一次修改时间
boolean delete() 删除文件或文件夹
void deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
boolean canExecute() 是否可以执行此抽象路径名表示的文件。
只有当文件存在且当前文件允许执行(文件访问是有权限的)时返回true
boolean canRead() 同上文件存在且是否可读
boolean canWrite() 同上文件存在且是否可写
String getParent() ,File getParentFile() 获取文件父目录
long getTotalSpace() 当前文件处于的磁盘空闲内存返回是字节
String[] list() 当前对象下所有文件夹名称的字符串数组
File[] listFiles() 同上只是返回的是文件夹路径对象
static File[] listRoots() 返回程序对应系统所有的根目录
如我在电脑Ecplise中通过此方法获取到就是D:\ ,C:\, E:\, F:\,等磁盘根目录
File[] listFiles(FilenameFilter filter) String[]list(FilenameFilterfilter)
通过配置FilenameFilter来实现遍历指定目录中存在的文件或者文件后缀(如下3)
3:FilenameFilter 过滤接口配合File相关方法使用
FilenameFilter是个接口需要实现其中accept方法,这个方法中返回的值就是我们需要过滤出来的值,accpet中File dir 这个目录就是我们需要过滤的目录,name是我们在当前目录中遍历到的文件。
4:FileFilter 同上这个也是个借口过滤的是文件目录 用法同上
File [] listFiles (FileFilterfilter)