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
    每天进步一点点,快乐生活多一点。
  • 相关阅读:
    现在的技术QQ群为什么都变成了这样?效率高也是有弊端的?
    【php】php中mail()不可用,php中sendmail不能用的解决方法
    Cannot validate since no PHP executable is set. Use the setting 'php.validate.executablePath' to configure the PHP executable.无法使用PHP可执行的设置。设置php.validate。executablePath配置PHP可执行文件。
    20150907自动化测试之Appinum For Android(前篇)
    [摘]关于目标管理
    婚恋网站应该有视频功能
    GIS的双屏显示模式是一个实用的创新
    移动产品将越分越细
    基于开源GIS软件的电子政务地理信息应用解决方案
    手机长途话费应再降!
  • 原文地址:https://www.cnblogs.com/yiruliu/p/10833730.html
Copyright © 2011-2022 走看看