1. 程式人生 > >JAVA之文件操作

JAVA之文件操作

dir 匿名 tabs ioe exceptio 使用 目錄 匿名內部類 文件操作

一、常用方法:

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

JAVA之文件操作