使用File类描述文件或者文件夹
File类构造方法:
1.File(File parent,String child)根据parent抽象路径和child路径名字符串创建一个新的File实例
2.File(String pathname)通过给定路径名字符串转换为抽象路劲名来创建一个新的File实例
3.File(String parent,String child)
路径问题:
1.绝对路径:该文件在硬盘上的完整路径,绝对路径一般都是以盘符开头的
2.相对路径:资源文件相对于当前程序所在的路径
注意:如果程序当前所在路径与资源文件不是在同一个盘下,是没法写相对路径的
File类常用的方法:
创建:
1.createNewFile():在指定位置创建一个空文件,成功就返回true,如果已存在就不创建返回false
File file=new File("F:\\b.txt");
file.createNewFile();
2.mkdir():在指定位置创建目录,这只会创建最后一级目录,如果创建目录不存在就抛异常
File dir=new File("F:\\aaa");
dir.mkdir();//创建单级目录
3.mkdirs():在指定位置创建目录,这会创建路径中所有不存在的目录
dir=new File("F:\\aaa\\bbb");
dir.mkdirs();//创建多级目录
4.renameTo(File dest):重命名文件或文件夹,也可以操作非空的文件夹,文件不同时相当于文件的剪切,剪切时就不能操作非空的文件夹,移动/重命名成功就返回true
File destFile=new File("F:\\abc.txt");
file.renameTo(destFile);//重命名文件
//如果目标文件与源文件在同一个路径下,renameTo作用是重命名,如果目标文件与源文件不在同一个路径下,renameTo作用是剪切,只能操作文件,不能操作文件夹
删除:
1.delete():删除文件或一个空文件夹,如果文件夹不为空,则不能删除,成功返回true,失败返回false
2.deleteOnExit():在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除
区别:delete()会马上删除文件,deleteOnExit()在jvm退出时删除文件
判断:
1.exists():文件或文件夹是否存在
File file=new File("F:\\a.txt");
file.exists();
2.isFile():是否是一个文件,如果不存在则始终未false
file.isFile();
3.isDirectory():是否是一个目录,如果不存在,则始终未false
file.isDirectory();
4.isHidden():是否是一个隐藏的文件或目录
file.isHidden();
5.isAbsolute():测试此抽象路径名是否为绝对路径名
file.isAbsolute();
获取:
1.getName():获取文件或文件夹的名称,不包含上级路径
File file=new File("F:\\a.txt");
file.getName();
2.getPath():返回绝对路径,可以是相对路径,但是目录要指定
file.getPath();
3.getAbsolutePath():获取文件的绝对路径,与文件是否存在没关系
file.getAbsolutePath();
4.length():获取文件的大小(字节数)如果文件不存在则返回OL,如果是文件夹也返回OL
file.length();
5.getParent():返回此抽象路径名父目录的路径名字符串,如果此路径名没有指定父目录,则返回null
file.getPatent();
6.lastModified():获取最后一次被修改的时间(毫秒值)
file.lastModified();
//使用毫秒值转换成Date对象
long lastModified=file.lastModified();
Date date=new Date(lastModified);
SimpleDateFormat dataFormat=new SimpleDateFormate("yyyy年MM月dd日 HH:mm:ss");
system.out.println("最后一次修改的时间:"+dataFormat.format(date));
文件夹相关:
1.Static File[ ] listRoots():列出所有的根目录(windows中就是所有系统的盘符)
File[ ] roots=File.listRoots();//列出所有根目录
for(File file:roots){
system.out.println(file);
}
2.list():返回目录下的文件或者目录名,包含隐藏文件,对于文件这样操作会返回null
File file=new File("F:\\aaa");
//列出当前文件夹下所有子文件名与子文件夹名存储到一个String类型数组返回
String[ ] fileNames=file.list();
for(String fileName:fileNames){
system.out.println(fileName);
}
3.list(FilenameFilter filter):返回指定当前目录中符合过滤条件的子文件或子目录,对于文件这样操作会赶回null
4.listFiles():返回目录下的文件或目录对象(File实例),包含隐藏文件,对于文件这样操作会返回null
5.listFiles(FilenameFilter filter):返回指定当前目录中符合过滤条件的子文件或子目录,对于文件这样操作会返回null