Java文件常用操作代碼解釋

構造方法:

package test;

import java.io.File;

public class Main {
    public static void main(String[] args) {

//      File(String pathname) 
//      通過將給定路徑名字符串轉換爲抽象路徑名來創建一個新 File 實例。
        File file = new File("E:\\demo\\a.txt");

//      File(String parent, String child) 
//      根據 parent 路徑名字符串和 child 路徑名字符串創建一個新 File 實例。
        File file1 = new File("e:\\demo", "a.txt");

//      File(File parent, String child) 
//      根據 parent 抽象路徑名和 child 路徑名字符串創建一個新 File 實例。
        File file2 = new File("E:\\demo");
        File file3 = new File(file2, "a.txt");

        //以上三種方法效果一樣

    }
}

創建和刪除文件:
1、如果創建文件或目錄時沒有寫盤符路徑,則默認在醒目路徑下
2、Java中的刪除不走回收站

package test;

import java.io.File;
import java.io.IOException;


public class Main {
    public static void main(String[] args) throws IOException {

        //創建文件夾,如果存在不創建,並返回false。否則創建,返回true
        File file = new File("e:\\demo");
        System.out.println(file.mkdirs());

        //這樣可以一次創建多個;E可以大寫也可以小寫
//      for(int i = 0; i < 3; i++) {
//          File file = new File("e:\\demo"+i);
//          System.out.println(file.mkdirs());
//      }

        //在e:\\demo中建一個文件 a.txt
        File file1 = new File(file, "a.txt");
        //也可以File file1 = new File("e:\\demo\\a.txt");
        //創建一個文件,如果不存在就創建,否則不創建
        System.out.println(file1.createNewFile());//這裏需要拋出異常,所以main方法那裏需要加上 throws IOException

//      下邊兩句會報錯 Exception in thread "main" java.io.IOException: 系統找不到指定的路徑。
//      File file2 = new File("e:\\test\\aaa");
//      file2.createNewFile();
//      要想在某個目錄下創建內容,該目錄首先必須要存在

        //創建多級目錄,只能創建文件夾
        File file2 = new File("e:\\test\\aaa");
        System.out.println(file2.mkdirs());

//      這裏創建的是一個名爲a.txt的文件夾
//      File file2 = new File("e:\\test\\a.txt");
//      System.out.println(file2.mkdirs());

        //如果要刪除的目錄中含有文件或目錄的話,delete方法無法刪除
        File file3 = new File("e:\\test");
        System.out.println("delete:"+file3.delete());

        //將file2中的aaa改名爲bbb
        File newfile = new File("e:\\test\\bbb");
        System.out.println(file2.renameTo(newfile));

        //如果新文件名的路徑跟需改名的文件的路徑不同,則做的是改名加剪切
        File nnewfile = new File("e:\\demo\\ccc");
        System.out.println(newfile.renameTo(nnewfile));
    }
}

獲取功能:

package test;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class Main {
    public static void main(String[] args) throws IOException {

        File file = new File("e:\\a.txt");
        //獲取絕對路徑
        System.out.println(file.getAbsolutePath());
        //獲取相對路徑
        System.out.println(file.getPath());
        //獲取名稱
        System.out.println(file.getName());
        //過去長度(字節數)
        System.out.println(file.length());
        //獲取最後一次的修改時間,毫秒值

        Date d = new Date(file.lastModified());
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(d));

        System.out.println("-----------");

        File file2 = new File("e:\\");
        //獲取指定目錄下的所有文件或者文件夾的名稱數組(包括隱藏文件)
        String[] strArray = file2.list();
        for(String s : strArray) {
            System.out.println(s);
        }

        System.out.println("----------------");

        //獲取指定目錄下的所有文件或者文件夾的File數組
        File[] fileArray = file2.listFiles();
        //這個方法這樣看跟list方法一樣
        for(File f : fileArray) {
            System.out.println(f);
        }
        System.out.println("----------------");
        //其實listFiles方法返回的是文件對象數組
        //例如
        System.out.println(fileArray[1].getName());
    }
}

list和listFiles兩種方法添加接口:

package test;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;


public class Main {
    public static void main(String[] args) throws IOException {

        //獲取E盤下.txt的文件(不包含文件夾)

        File file = new File("e:\\");

        String[] strArray = file.list(new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return new File(dir, name).isFile() && name.endsWith(".txt");
            }
        });

        for(String s : strArray) {
            System.out.println(s);
        }

        System.out.println("--------------------");

        File[] fileArray = file.listFiles(new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return new File(dir, name).isFile() && name.endsWith(".txt");
            }
        });

        for(File f : fileArray) {
            System.out.println(f);
        }

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章