File类、递归

File类
File类的构造函数与File类的获取


 

import java.io.File;
import java.io.FileFilter;

public class MyFileter implements FileFilter{

    public boolean accept(File pathname) {
        return pathname.getName().toLowerCase().endsWith(".java");
    }
    
}

import java.io.File;

public class Demo01 {
    public static void main(String[] args) {
        method1();//E:\java
        method2();//;  \
        method3();//E:\java
        method4();//E:\java\b.txt
    }
    public static void method1(){
        //构造方法是不会去给你判断该路径的文件或目录是否存在
        //windows下不区分大小写
        File file=new File("E:"+File.separator+"java");
        System.out.println(file);
    }
    public static void method2(){
        //与系统有关的路径分隔符
        String s1=File.pathSeparator;
        System.out.println(s1);
        //与系统有关的名称分隔符
        String s2=File.separator;
        System.out.println(s2);
    }
    public static void method3(){
        File file=new File("E:","java");
        System.out.println(file);
    }
    public static void method4(){
        File file=new File("E:\\java");
        File file2=new File(file,"b.txt");
        System.out.println(file2);
    }
}
文件和文件夹的创建删除等

 

import java.io.File;
import java.io.IOException;

public class Demo02 {
    public static void main(String[] args) throws IOException {
        method1();//E:\eclipsework\Day01\src
        method2();//a  E:\java\a
        method3();//319984
        method4();
        method5();
        method6();
        method7();
        method8();
        method9();
    }
    public static void method1(){
        File file=new File("src");
        //如果相对路径,返回的是该类根目录的绝对路径
        //返回该文件对象的绝对路径
        String path=file.getAbsolutePath();
        System.out.println(path);
    }
    public static void method2(){
        File file=new File("E:\\java\\a");
        String name=file.getName();//获取文件或文件夹名
        String path=file.getPath();//获取绝对路径
        System.out.println(name);
        System.out.println(path);
    }
    public static void method3(){
        File file=new File("E:\\java\\eclipse\\eclipse.exe");//获取文件长度
        long size=file.length();
        System.out.println(size);
    }
    public static void method4() throws IOException{
        File file=new File("E:\\java\\c");//创建文件
        boolean flag=file.createNewFile();
        System.out.println(flag);
    }
    public static void method5(){
        File file=new File("E:\\java\\c");//删除文件    直接彻底删除
        boolean flag=file.delete();
        System.out.println(flag);
    }
    public static void method6(){
        File file=new File("F:\\java\\c");//判断该文件是否在该路径下
        boolean flag=file.exists();
        System.out.println(flag);
    }
    public static void method7(){
        File file=new File("E:\\java\\a");//判断该文件对象是否为文件夹
        boolean flag=file.isDirectory();
        System.out.println(flag);
    }
    public static void method8(){
        File file=new File("E:\\java\\b.txt");//判断该文件对象是否为文件
        boolean flag=file.isFile();
        System.out.println(flag);
    }
    public static void method9(){
        File file=new File("E:\\java\\d");//创建文件夹
        File file1=new File("E:\\java\\e\\f\\g");//创建一个或多个文件夹
        boolean flag=file.mkdir();
        boolean flag1=file1.mkdirs();
        System.out.println(flag);
        System.out.println(flag1);
    }
}
listFiles()方法介绍

 

import java.io.File;

public class Demo03 {
    public static void main(String[] args) {
        //method1();
        //method2();
        method3();
    }
    public static void method1(){
        File file=new File("E:\\java");
        //获取的是文件名的字符串 没啥用
        String[] files=file.list();
        for(String s:files){
            System.out.println(s);
        }
    }
    public static void method2(){
        File file=new File("E:\\java");
        //获取文件夹下所有文件对象
        File[] files=file.listFiles();
        for(File f:files){
            System.out.println(f);
        }
    }
    //找出文件夹里.java类型的文件
    public static void method3(){
        File file=new File("E:\\java");
        File[] files=file.listFiles(new MyFileter());
        for(File f:files){
            System.out.println(f);
        }
    }
}
递归
递归的概述

 

示例:
public class Demo04 {
    //递归:自己调自己,要给出口
    public static void main(String[] args) {
        System.out.println(getSum(20));//210
    }
    //求100+99+98+...+1的和
    public static int getSum(int n){
        if(n==1){
            return 1;
        }
        return n+getSum(n-1);
    }
}
//获取文件夹里的文件
import java.io.File;

public class Demo05 {
    public static void main(String[] args) {
        File file=new File("E:\\java\\a");
        getFile(file);
    }
    public static void getFile(File dir){
        File[] files=dir.listFiles(new MyFileter());
        System.out.println(dir);
        for(File f:files){
            //如果该文件对象是文件夹调自己
            if(f.isDirectory()){
                getFile(f);
            }else{
            System.out.println(f);
            }
        }
    }
}

 

posted @ 2019-01-10 09:41  帅涛  阅读(111)  评论(0编辑  收藏  举报