Java基础09-IO流-File类

简介

1. 用来将文件或者文件夹封装成对象
2. 方便对文件与文件夹的属性信息进行操作
3. File对象可以作为参数传递给流的构造函数
4. 了解File类中的常用方法

File构造函数

package com.gaopeng.file;

import java.io.File;

public class Demo01 {
    public static void main(String[] args) {
        //可以将一个已存在,或为存在的文件或者文件夹封装成一个File对象
        File file = new File("a.txt");
        //路径与文件分开传递
        new File("C:\\","a.txt");
        //传递文件夹
        File file1 = new File("C:\\");
        //文件对象与文件传递参数
        new File(file1,"a.txt");
        //获取系统路径分隔符
        File file2 = new File("C:" + File.separator + "a.txt");
        System.out.println(file2);
    }
}

File类的基本方法

  1. dir.delete(); 删除一个文件夹时,文件夹不为空不能删除
  2. file.createNewFile();新建一个文件时,如果文件存在,则不进行创建
  3. file.isFile();文件不存在时也返回false,所以在判断之前需要判断文件是否存在
  4. file.renameTO(file2);可以移动文件并重命名
  5. file.list();file必须是目录对象,如果是一个文件对象会空指针异常
  6. file.list(FileNameFilter filter);实现FileName Filter类重写accep方法,并实例化类,进行文件名过滤。本质过滤器获取所有文件名,进行判断,符合规则,则存入某个容器
  7. 图解:
    Java基础09-IO流-File类

打印一个目录中的所有文件(包含子目录中的文件)

  1. 思路
    1. file.listFiles();获取所有的文件对象
    2. 判断是文件还是目录
    3. 如果是目录,遍历目录进行判断(递归),如果是文件则打印输出
  2. Demo
    package com.gaopeng.file;
    
    import java.io.File;
    
    public class Demo04 {
    	public static void main(String[] args) {
    		File file = new File("D:\\");
    		int level=0;
    		listAll(file,level);
    	}
    
    	private static void listAll(File file, int level) {
    		File[] files = file.listFiles();
    		level++;
    		for (File file1 : files) {
    			if (!file1.isHidden()) {
    				if(file1.isFile()){
    					System.out.println(getSpace(level)+file1.getName());
    				}
    				else if(file1.isDirectory()){
    					listAll(file1, level);
    				}
    			}
    
    		}
    	}
    
    	private static String getSpace(int level) {
    		StringBuilder str = new StringBuilder();
    		str.append("|  ");
    		for (int i = 0; i < level; i++) {
    			str.append("|--");
    		}
    		return str.toString();
    	}
    }
    

删除一个有内容的目录

  1. 需要进行深度遍历
  2. 删除所有文件
  3. 删除目录
上一篇:Linux常用命令(转载)


下一篇:Python编写登录接口,从文件中获取用户名密码,输错三次后自动锁定并存储在文件中