zoukankan      html  css  js  c++  java
  • JAVA之文件操作

    一、常用方法:

    1、打印文件路径:

    使用.getName()可以打印出相对路径,也可以打印出文件/夹名

    使用.getAbsolutePath()可以打印出绝对路径。

    使用.getCanonicalPath()可以打印出绝对路径。

    getAbsolutePath()和getCanonicalPath()方法的区别:

    • 使用getCanonicalPath()需要处理异常,即向上抛出异常或要使用try catch;而getAbsolutePath()不需要;
    • getCanonicalPath()的当前路径不特意标识,而getAbsolutePath()会写明,例如:

                    D:IDEA CODEkkx-java.idea和D:IDEA CODEkkx-java..idea

    2、判断是否是文件:

    使用.isFile()方法

    3、判断是否是路径:

    使用.isDirectory()方法

    4、判断磁盘上是否存在:

    使用.exists()方法

    5、创建文件夹:

    使用.mkdir()方法

    6、创建文件:

    使用.createNewFile()方法

    二、应用:

    import java.io.File;
    import java.io.FileFilter;
    import java.io.IOException;
    
    public class FileDemo {
        public static void main(String[] args) throws IOException {
            File file1 = new File("."); //小技巧:写相对路径时,如果拿不准相对路径的位置,
            // 可以写“.”,然后打印出来,就能知道相对路径的位置了
            System.out.println(file1.getName());
            System.out.println(file1.getAbsolutePath());
            System.out.println(file1.getCanonicalPath());
            System.out.println(file1.isFile());
            System.out.println(file1.isDirectory());
            System.out.println(file1.exists());
            //结果:
    //        .
    //        D:IDEA CODEkkx-java.  绝对路径是到该文件所在的工程的根目录,而不是所在包名
    //        D:IDEA CODEkkx-java
    //        false
    //        true
    //        true
            File file2 = new File("a.txt"); //小技巧:写相对路径时,如果拿不准相对路径的位置,
            // 可以写“.”,然后打印出来,就能知道相对路径的位置了
            System.out.println(file2.getName());
            System.out.println(file2.getAbsolutePath());
            System.out.println(file2.getCanonicalPath());
            //getAbsolutePath()与getCanonicalPath()的区别:
            //1、getCanonicalPath()需要处理异常;而getAbsolutePath()不需要
            //2、getCanonicalPath()的当前路径不特意标识,而getAbsolutePath()会写明点,例如:
            //D:IDEA CODEkkx-java.idea和D:IDEA CODEkkx-java..idea
            System.out.println(file2.isFile());
            System.out.println(file2.isDirectory());
            System.out.println(file2.exists());
            //当a.txt不存在时,结果:
    //        a.txt
    //        D:IDEA CODEkkx-javaa.txt
    //        D:IDEA CODEkkx-javaa.txt
    //        false
    //        false
    //        false

     三、具体应用:

    1、创建文件,已经存在就不创建,否则创建:

    import java.io.File;
    import java.io.FileFilter;
    import java.io.IOException;
    
    public class FileDemo {
        public static void main(String[] args) throws IOException {
            File file2 = new File("a.txt");
            System.out.println(file2.getName());
            if(!file2.exists()){
                   file2.createNewFile(); //创建文件,创建在当前路径的工程下
            }
        }
    }

    2、打印当前路径下的所有以.java结尾的文件:

    import java.io.File;
    import java.io.FileFilter;
    import java.io.IOException;
    
    public class FileDemo {
        public static void main(String[] args) throws IOException {
             File file1 = new File("."); 
             files = file1.listFiles(new FileFilter() { //重写匿名内部类
                @Override
                public boolean accept(File pathname) {
                    return pathname.isFile();
                }
            });
            System.out.println("==================");
            for(File f:files){
                if(f.getName().endsWith(".java")){
                    System.out.println(f.getCanonicalPath());
                }
        }
    }
    
    //结果:
    //            ==================
    //            D:IDEA CODEkkx-javaa.java
    //            D:IDEA CODEkkx-javakkx-java.java
    每天进步一点点,快乐生活多一点。
  • 相关阅读:
    Redis Cluter
    数据库设计范式
    kvm虚拟化
    架构前端
    集群架构
    初识shell编程
    网络知识
    Linux三剑客
    Linux磁盘管理
    高性能异步爬虫
  • 原文地址:https://www.cnblogs.com/yiruliu/p/10833730.html
Copyright © 2011-2022 走看看