一、File类的基本操作
File类是唯一与文件本身操作(创建,删除,重命名等等)有关的类,如果要进行file类的操作,必须提供完整的路径。而后就可以进行文件的操作了。
1.File类的基本使用
File类实现了Comparable的接口,说明了File类是一个可排序的类。
File类的常用构造方法:public File(String pathname);接收的是一个文件路径。public File(String parent,String child);接收的是父路径,子目录。
File类的其他常用的操作方法:
1.创建新的文件:public boolean createNewFile() throws IOException;
2.删除文件:public boolean delete();
3.判断文件是否存在:public boolean exists();
范例:文件的创建与删除
public class Test1 { public static void main(String[] args) throws IOException { File file = new File("D:\\ss.txt"); if(file.exists()){ file.delete(); }else{ file.createNewFile(); } } }
2.File类的深入
1.在Windows和Linux,Unix的操作系统中,存在不同的文件分隔符,Windows中的文件分割符是“\”,Linux,Unix的文件分割符是“/”,为了解决此问题,File类中提供了一个常量:public static final String separator; 来表示分隔符。
范例:正常文件路径
File file = new File("D:"+File.separator+"ss.txt");
但是现在随着适应性的不断加强,可以随意使用“\”和“/”。
File file = new File("D:/ss.txt");
2.在进行文件操作的时候需要注意:程序->JVM->操作系统函数->文件,所以当文件创建或者删除的时候会出现延迟的问题,所以文件最好是不要重名,UUID可以解决这一问题。
3.在进行文件创建的时候,首先得保证文件父级路径必须存在,否则会报 “系统找不到指定的路径” 的异常。
获取父级路径:public File getParentFile();
创建多级路径的方法:public boolean mkdirs();
范例:创建多级目录
public class Test1 { public static void main(String[] args) throws IOException { File file = new File("D:"+File.separator+"demo"+File.separator+"ss.txt"); if(!file.getParentFile().exists()){ file.getParentFile().mkdirs(); } if(file.exists()){ file.delete(); }else{ file.createNewFile(); } } }
3.获取文件信息
- 文件是否可读:public boolean canRead();
- 文件是否可写:public boolean canWrite();
- 文件大小:public long length();返回数据为long型,表示字节数。
- 最后修改时间:public long lastModified();返回数据为long型,表示毫秒。
- 判断是否是目录:public boolean isDirectory();
- 判断是否是文件:public boolean isFile();
- 列出目录内容:public File[] listFiles();
二、文件操作经典范例
范例:列出某目录下的所有文件:
public class Test1 { public static void main(String[] args) throws IOException { File file = new File("D:"+File.separator); fileDeir(file); } public static void fileDeir(File file){ if(file.isDirectory()){ File files[] = file.listFiles(); if(files != null) { for (int i = 0; i < files.length; i++) { fileDeir(files[i]); } } }else{ System.out.println(file); } } }