File:获取文件信息(大小,文件名,修改时间),具有判断文件的类型
创建文件/文件夹,删除文件/文件夹
注意: File类只能对文件本身进行操作,不能读写文件里面存储的数据。
创建对象
// File q1=new File("D:/电脑屏/6C22D6823B18FDC6AC11F764CF93CE66.jpg");
// File q1=new File("D:\\电脑屏\\6C22D6823B18FDC6AC11F764CF93CE66.jpg");
// 跨平台
File q1=new File("D:"+File.separator+"电脑屏"+File.separator+"6C22D6823B18FDC6AC11F764CF93CE66.jpg");
System.out.println(q1.length());
File q2=new File("D:/电脑屏");
System.out.println(q2.length());
//可以指向不存在对象;意义:通过createNewFile或者mkdir系列方法创建
File q3=new File("D:/电脑屏/12edsfdsfafvfafdrefev");//不存在路径
System.out.println(q3.length());
System.out.println(q3.exists());//判断文件是否存在
//绝对路径和相对路径:绝对路径带盘符
File q4=new File("D:\\daima\\NEW\\IO\\xianagdui");//绝对路径
File q5=new File("IO\\xianagdui");//相对路径:默认直接到当前工程目录寻找文件
System.out.println(q5.length());
定位模块文件建议使用相对路径
常用方法1
public boolean exists( ) | 判断当前文件对象,对应的文件路径是否存在,存在返回true |
public boolean isFile( ) | 判断当前文件对象指代的是否是文件,是文件返回true,反之 |
public boolean isDirectory() | 判断当前文件对象指代的是否是文件夹,是文件夹返回true |
public String getName( ) | 获取文件的名称(包含后缀) |
public long length() | 获取文件的大小,返回字节个数 |
public long lastModified( ) | 获取文件的最后修改时间。 |
public String getPath() | 获取创建文件对象时,使用的路径 |
public String getAbsolutePath() | 获取绝对路径 |
File q1=new File("D:/电脑屏/6C22D6823B18FDC6AC11F764CF93CE66.jpg");
// public boolean exists()判断当前文件对象,对应的文件路径是否存在,存在返回true
System.out.println(q1.exists());
// public boolean isFile()判断当前文件对象指代的是否是文件,是文件返回true,反之。
System.out.println(q1.isFile());
// public boolean isDirectory()判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
System.out.println(q1.isDirectory());
// public String getName() 获取文件的名称(包含后缀)
System.out.println(q1.getName());
// public long length()获取文件的大小,返回字节个数
System.out.println(q1.length());
// public long lastModified() 获取文件的最后修改时间。
Long time=q1.lastModified();
SimpleDateFormat sdf=new SimpleDateFormat( "yyyy//MM/dd HH:mm:ss");
System.out.println(sdf.format(time));
// public String getPath() 获取创建文件对象时,使用的路径
System.out.println(q1.getPath());
// public String getAbsolutePath()获取绝对路径
System.out.println(q1.getAbsolutePath());
常用方法2
public boolean createNewFile() | 创建一个新的空的文件 |
public boolean mkdir( ) | 只能创建一级文件夹 |
public boolean mkdirs() | 可以创建多级文件夹 |
public boolean delete() | 删除文件、空文件 |
注: delete方法默认只能删除文件和空文件夹,且删除后的文件不会进入回收站
// 1、public boolean createNewFile(): 创建一个新文件(文件内容为空),创建成功返回true, 反之。
File f1=new File("D:/aaa/ass");
System.out.println(f1.createNewFile());
// 2、public boolean mkdir(): 用于创建文件夹,注意:只能创建一级 文件夹
File f2=new File("D:/电脑屏/aaa");
System.out.println(f2.mkdir());
// 3、public boolean mkdirs(): 用于创建文件夹,注意:可以创建多级文件夹
File f3=new File("D:/电脑屏/aaa/edsc/sfv");
System.out.println(f3.mkdirs());
// 3、public bpolean delete(): 删除文件,或者空文件,注意:不能删除非空文件夹。
System.out.println(f1.delete());
System.out.println(f1.delete());
注:在创建新文件夹时,只能命名到未存在的那一项(例: File f1=new File("D:/aaadcd/assf");
若aaa文件夹不存在,则不能创建D:/aaadcd/assf",否则会报 系统找不到指定的路径 错误);
遍历文件夹
public String[] list() | 获取当前目录下所有的"-级文件名称"到一个字符串数组中去返回 |
public File[] listFiles() | 获取当前目录下所有的"一级文件对象”到一个文件对象数组中去返回(重点) |
// public String[] list()获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
File f1=new File("D:\\daima\\NEW\\IO");
String []li=f1.list();
for (String s : li) {
System.out.println(s);
}
// public File[] listFiles()获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回()
File []g=f1.listFiles();
for (File ff : g) {
System.out.println(ff);
System.out.println(ff.getAbsolutePath());
使用listFiles方法时的注意事项:
当主调是文件, 或者路径不存在时,返回null
当主调是空文件夹时, 返回一个长度为0的数组
当主调是一个有内容的文件夹时, 将里面所有一级文件和文件夹的路径放在File数组中返回
当主调是一个文件夹, 且里面有隐藏文件时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
当主调是一个文件夹,但是没有权限访问该文件夹时,返回null