1. File类的概述
文件和路径名的抽象表现形式
2. 构造方法
public File(String pathname):给定一个文件的抽象路径表现形式,开发中常用
public File(String parent,Stringchild):参数一:指定当前文件夹的名称,参数二:该文件夹下的文件
public File(File parent,String child):参数一:file对象,参数二:表示具体文件
3. File类里面常用的一些方法
public booleancreateNewFile():创建文件,如果该文件存在了,就不用创建了,执行该方法会抛出一个异常IOException
publicboolean mkdir():创建文件夹
publicboolean mkdir():创建多个文件夹
publicBoolean delete():删除此抽象路径名表示的文件或目录
delete方法只能删除空目录,如果该目录有内容(文件或文件夹,那么只能先删除内容再删除最外层)
如果在写文件或文件夹的时候没有写盘符,那么默认在当前项目下创建
publicboolean renameTo(File dest):重命名
注意:如果两个文件的抽象路径名称一致,只是改名
如果两个文件的抽象路径名称不一致,不仅改名,还要剪切
import java.io.File;
public class FileDemo2 {
publicstatic void main(String[] args) {
Filefile=new File("高圆圆.jpg");
Filefile2=new File("e:\\夏红.jpg");
System.out.println(file.renameTo(file2));
}
}
代码:
public class FileDemo {
public static void main(String[] args) throws IOException {
//创建File对象
File file=new File("e:\\demo");
System.out.println("mkdir:"+file.mkdir());
File file2=new File(file,"java.txt");
System.out.println("creatNewFile:"+file2.createNewFile());
File file3=new File("e:\\aaa\\bbb\\ccc");
System.out.println("mkdirs:"+file3.mkdirs());
// File file4=new File("e:\\dd\\c.txt");
// System.out.println(file4.createNewFile());//java.io.IOException: 系统找不到指定的路径。
File file5=new File("d.txt");
System.out.println("creatNewFile:"+file5.createNewFile());
// System.out.println("delete:"+file5.delete());
File file6=new File("aaa\\bbb\\ccc");
System.out.println("mkdirs:"+file6.mkdirs());
System.out.println("delete:"+file6.delete());
}
}
4 File类中的判断类
publicboolean isDirector():判断该文件是否是一个文件夹:重点
publicboolean isFile():判断文件是否是一个标准文件
publicboolean isHidden():判断文件是否是一个隐藏文件
publicboolean canRead():判断文件是可读
publicboolean canWrite():判断文件是否可写
代码:
public class FileDemo3 {
public static void main(String[] args) {
File file=new File("d.txt");
System.out.println("isDetactor:"+file.isDirectory());
System.out.println("isFile:"+file.isFile());
System.out.println("isHidden:"+file.isHidden());
System.out.println("canRead:"+file.canRead());
System.out.println("canWrite:"+file.canRead());
}
}
5. File类中的高级功能
publicString[] list():获取当前盘符下所有文件或文件夹的字符串名称数组
pubic File [] listFiles():获取当前盘符下所有文件或文件夹的File名称数组,常用、
代码:
public class FileDemo {
public static void main(String[] args) {
//获取e盘下根目录的所有的文件以及文件夹的名称
//将e盘根目录封装成一个File对象
File file = new File("e:\\");
//public String[] list():获取当前盘符下的所有的文件以及文件夹的字符串数组
String[] strArray = file.list();
//增强for遍历
for(String s : strArray){
System.out.println(s);
}
System.out.println("----------------------");
File[] fileArray = file.listFiles() ;
for(File f : fileArray){
System.out.println(f.getName());
}
}
}
6. File类中的获取功能: 基本获取功能
publicString getAbsolutePath():获取当前文件的绝对路径
publicString getPath():相对路径
publicString getName():获取文件或者目录的名称
publiclong length():获取文件内容的长度
publiclong lastModified():最后一次修改这个文件的时间(时间毫秒值)
代码:
public class FileDemo {
public static void main(String[] args) {
//将a.txt文件封装成一个file对象
File file = new File("a.txt") ;
//public String getAbsolutePath():D:\Java\JavaEE\code\day16\a.txt
System.out.println("getAbsolutePath:"+file.getAbsolutePath());
//public String getPath()
System.out.println("getPath:"+file.getPath());//a.txt
//public String getName():获取文件或者目录的名称
System.out.println("getName:"+file.getName());
//public long length():获取文件内容的长度
System.out.println("length:"+file.length());
//public long lastModified()
System.out.println("lastModified:"+file.lastModified());
//1502948146592 时间毫秒值
//Date日期对象 ---String :日期的文本表现形式
// 创建日期对象
Date d = new Date(1502948146592L) ;
//创建SimpleDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") ;
//格式化
String s = sdf.format(d) ;
System.out.println(s);//2017-08-17 13:35:46
}
}
7.练习
判断d盘目录下是否有”.bin”文件,有就输出
方法一代码:
/*
* 要求:判断e盘目录下是否有".day"文件夹,有就输出
* 分析:
* 1)将d盘封装成一个file对象
* 2)获取当前盘符下的文件或文件夹的File数组名称
* 3)遍历数组,获取到每一个文件或文件夹
* 4)判断是否是文件夹
* 5)如果是文件夹,判断文件夹是否以".bin"为后缀名
*/
public class FileTest {
public static void main(String[] args) {
//创建File对象
File file=new File("e:\\");
File[] array=file.listFiles();
for(File f:array){
if(f.isDirectory()){
if(f.getName().endsWith(".day")){
System.out.println(f.getName());
}
}
}
}
}
方法二代码:
获取的时候就已经满足条件了,简单,方便
代码:
文件名称过滤器:
public String[]list(Filenamefilter filter):返回一个字符串数组
public File[] listFiles(Filefilter filter):返回抽象路径名称数组
import java.io.File;
import java.io.FilenameFilter;
public class FileTest2 {
public static void main(String[] args) {
//将d盘中的文件和文件夹封装到File对象中
File file=new File("e:\\");
//返回一个字符串数组名称,然后匿名内部类
String[] array=file.list(new FilenameFilter(){
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return new File(dir,name).isDirectory()&&name.endsWith(".day");
}
});
for(String s:array){
System.out.println(s);
}
}
}