JAVA之文件操作


一、常用方法:

1、打印文件路徑:

使用.getName()可以打印出相對路徑,也可以打印出文件/夾名

使用.getAbsolutePath()可以打印出絕對路徑。

使用.getCanonicalPath()可以打印出絕對路徑。

getAbsolutePath()和getCanonicalPath()方法的區別:

  • 使用getCanonicalPath()需要處理異常,即向上拋出異常或要使用try catch;而getAbsolutePath()不需要;
  • getCanonicalPath()的當前路徑不特意標識,而getAbsolutePath()會寫明,例如:

                D:\IDEA CODE\kkx-java\.idea和D:\IDEA CODE\kkx-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 CODE\kkx-java\.  絕對路徑是到該文件所在的工程的根目錄,而不是所在包名
//        D:\IDEA CODE\kkx-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 CODE\kkx-java\.idea和D:\IDEA CODE\kkx-java\.\.idea
        System.out.println(file2.isFile());
        System.out.println(file2.isDirectory());
        System.out.println(file2.exists());
        //當a.txt不存在時,結果:
//        a.txt
//        D:\IDEA CODE\kkx-java\a.txt
//        D:\IDEA CODE\kkx-java\a.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 CODE\kkx-java\a.java
//            D:\IDEA CODE\kkx-java\kkx-java.java

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM