• java 之 File类


    浅析理论:

    注:java中,是转义字符,如果要表示一个字符,则必须转义(\)
    一、文件路径的抽象(java.io.File)
    	三个构造器
    		File(String pathname)
    			File f = new File("g:/a/b/c.txt");//new File("g:\a\b\c.txt")
    			File f = new File("c.txt");//相对路径(相对类路径)
    		File(String parent, String child);//传入父目录和文件字符串路径
    			File f = new File("g:/a/b", "c.txt");
    		File(File parent, String child);//传入父目录File对象和文件字符串路劲
    			File f = new File("c:/a/b");
    			File f1 = new File(f, "c.txt");
    二、常用方法
    	File[] fs = File.listRoots(); //获取系统所有盘符	
    	String path = fs.getPath(); //返回路径(传入路径)
    	String path2 = fs.getAbsolutePath(); //返回绝对路径
    	String path3 = fs.getCanonicalPath(); //返回规范路径【常用】
    	String path = f.getParent(); //获取父路径
    	File parent = f.getParentFile(); //获取父路径
    
    	f.exists();//判断对应路径文件是否已存在
    	boolean f.mkdir(); //仅创建当前层级的目录,用于目录的父目录已存在的情况下
    	boolean f.mkdirs(); //依次创建所有不存在的层级目录
    	f.createNewFile(); //新建文件,如果此路径的父目录存在的时候才会创建成功
    	f.delete(); //删除文件
    	f.renameTo(File dest); //重命名文件
    三、常用属性
    	boolean canExecute(); //可执行
    	boolean canRead(); //可读
    	boolean canWrite(); //可写
    	boolean isAbsolute(); //是否绝对路径
    	boolean isDirectory(); //是否是目录
    	boolean isFile(); //是否是文件
    	boolean isHidden(); //是否是隐藏文件
    	lastModified(); //最后一次被修改的时间
    	long length(); //文件的长度
    四、遍历、过滤文件
    	String[] list(); //指定表示目录中的文件和目录
    	File[] listFiles(); //指定表示目录中的文件和目录
    	//只能过滤当前层级的,需要通过递归去判断
    	String[] list(FileFilter filter); //指定表示满足指定过滤器的文件和目录
    	File[] listFiles(FileFilter filter); //指定表示满足指定过滤器的文件和目录
    	File[] listFiles(FilenameFilter filter); //指定表示满足指定过滤器的文件和目录
    	
    

      

    浅析案例:

    package com.gongxy;
    
    import java.io.File;
    import java.io.FileFilter;
    import java.util.Arrays;
    
    /**
     * @author gongyg
     * @description File简单案例
     */
    public class FileTest {
        public static void main(String[] args) throws Exception {
            //threeConstructorTest();
            //getPathTest();
            //createDeleteFile();
            //commonAttribute();
            iteratorFile();
        }
    
        /*
        File 三个构造器测试
         */
        static void threeConstructorTest() throws Exception{
            File f1 = new File("f:/测试/a/b.txt");//构造器1
            File f2 = new File("b.txt");//这个是项目根路径
            File f3 = new File("f:/测试/a", "b.txt");//构造器2
            File f5 = new File("f:/测试/a");
            File f6 = new File(f5,"b.txt");//构造器3
            System.out.println(f1.getCanonicalPath());//F:测试a.txt
            System.out.println(f2.getCanonicalPath());//F:3Java-Studymy-java-study-0802.txt
            System.out.println(f3.getCanonicalPath());//F:测试a.txt
            System.out.println(f5.getCanonicalPath());//F:测试a
            System.out.println(f6.getCanonicalPath());//F:测试a.txt
            System.out.println(f1.exists());//false
        }
    
        /*
        获取相关路径的API
         */
        static void getPathTest() throws Exception{
            File[] fs = File.listRoots();
            System.out.println(Arrays.toString(fs));//[C:\, D:\, E:\, F:]
    
            File f = new File("../c.txt");
            System.out.println(f.getPath());//..c.txt(传入路径)
            System.out.println(f.getAbsolutePath());//F:3Java-Studymy-java-study-0802..c.txt
            System.out.println(f.getCanonicalPath());//F:3Java-Studyc.txt
            System.out.println(f.getParent());//..
            System.out.println(f.getParentFile());//..
        }
    
        static void createDeleteFile() throws Exception{
            File f = new File("g:/测试/测试a");
            boolean result;
            if(!f.exists()){
                f.mkdir();//false
                f.mkdirs();//true
            }
            File f1 = new File("测试B/b.txt");
            if(!f1.exists()){
                File f2 = f1.getParentFile();
                if(!f2.exists()){
                    f2.mkdirs();
                }
                f1.createNewFile();//true
            }
            if(f1.exists()){
                //f1.delete();//只删除了b.txt文件
            }
            File f3 = new File("测试B/c.txt");
            f1.renameTo(f3);//只能在同一个目录下更改,且如果已有文件,则改名失败
        }
    
        static void commonAttribute() throws Exception{
            File f1 = new File("c.txt");
            f1.createNewFile();
            boolean result = f1.canExecute();//true
            result  = f1.canRead();//true
            result = f1.canWrite();//true
            result = f1.isAbsolute();//false
            result = f1.isDirectory();//false
            result = f1.isHidden();//false
            result = f1.isFile();//true
            f1.lastModified();//1598943309757
            f1.length();//0
        }
    
        static void iteratorFile() throws Exception{
            File f = new  File("2-App");
            String[] sArray = f.list();
            System.out.println(Arrays.toString(sArray));
            //printPath(f);
            
            File[] fArray = f.listFiles(new FileFilter() {
                @Override
                public boolean accept(File pathname) {
                    return pathname.getName().endsWith(".java");
                }
            });
        }
    
        static void printPath(File f) throws Exception{
            File[] fArray = f.listFiles();
            if(fArray.length == 0){
                System.out.println(f);
                return;
            }
            for (File f1:
                    fArray) {
                if(f1.isDirectory()){
                    printPath(f1);
                }
                System.out.println(f1.getCanonicalPath());
            }
        }
    }
    

      

  • 相关阅读:
    1052 卖个萌
    编程实现hdfs对文件的操作
    关于Eclipse编译运行MapReduce程序报错问题的解决
    用户模板和用户场景
    用户体验评价
    大二下学期软件工程课程总结
    教师派第二阶段10
    教师派第二阶段09
    教师派第二阶段07
    教师派第二阶段06
  • 原文地址:https://www.cnblogs.com/gygtech/p/13597184.html
Copyright © 2020-2023  润新知