IO_File

File

file:文件和路径名的抽象表示形式。也就是指的一个联系,Java程序和硬盘上的资源的一种联系


两个常用常量:
* 1、路径分隔符  ;
* 2、文件分隔符  \

相对路径:

绝对路径:

String relativePath = "src/main/resources/mybatis-config.xml";
String absolutePath = "E:\Code\Mybatis\Mybatis00_helloworld\src\main\resources\mybatis-config.xml"

常用方法:

//文件名以及路径
public static void test1(){
    String path = "F:\\";
    String name = "1.bmp";
    File file = new File(path,name);//构造
    //File file = new File("1.bmp");

    System.out.println(file.getName());//文件名
    System.out.println(file.getPath());//如果是绝对路径返回完整路径,否则相对路径
    System.out.println(file.getAbsolutePath());//返回绝对路径
    System.out.println(file.getParent());//返回上一级目录,如果没有返回空
}

//是否存在
public static void test2(){
    String path = "E:\\Code\\Base\\src\\Progress\\IO\\Files.java";
    File file = new File(path);
    System.out.println(file.exists());//文件(或文件夹)是否存在
    System.out.println(file.canWrite());//文件(或文件夹)是否可写
    if (file.isFile()){
        System.out.println("文件");
    }else if (file.isDirectory()){
        System.out.println("文件夹");
    }else {
        System.out.println("文件不存在");
    }
    System.out.println(file.isAbsolute());//是否为绝对路径
    System.out.println(file.length());//长度——字节数(只有文件才能读出长度,文件夹不行)
}

//创建删除文件
public static void test3(){
    String name = "F:\\100.bmp";
    File file = new File(name);
    if (!file.exists()){
        try {
            boolean flag = file.createNewFile();//没有就创建,存在就返回false
            System.out.println(flag);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //删除文件
    boolean flag = file.delete();
    System.out.println(flag);
}


public static void test4(){
    String path = "F:/test";
    File file = new File(path);
    //file.mkdir();//创建目录,必须确保父目录存在,如果不存在则会创建失败
    file.mkdirs();//创建目录,如果父目录链不存在则一同创建

    String paths = "F:/";
    File src = new File(paths);
    if (src.isDirectory()){//存在并且为目录
        String[] subNames = src.list();//文件或目录名字符串的形式
        for (String temp:subNames) {
            System.out.println(temp);
        }
        System.out.println("===============");
        File[] subNamesPath = src.listFiles();//子文件或子目录路径名
        for (File f:subNamesPath) {
            System.out.println(f);
        }
    }

    File[] root = File.listRoots();//根路径
    for (File ignored :root
         ) {
        System.out.println(ignored);
    }

}

用法:

/**
     * 输出子孙级目录或文件的名称(绝对路径)
     * 1、listFiles()
     * 2、递归
     */
    public static void test5(){
        String path = "F:/test";
        File file = new File(path);
        printName(file);
    }
    public static void printName(File file){
        if (null==file||!file.exists()){
            return;
        }
        System.out.println(file.getAbsolutePath());
        if(file.isDirectory()){
            for (File subNames:file.listFiles()) {
                //System.out.println(subNames);
                printName(subNames);
            }
        }
    }
}

posted @ 2018-06-21 09:48  惶者  阅读(199)  评论(0编辑  收藏  举报