1. 程式人生 > 其它 >javaIO流之File類

javaIO流之File類

技術標籤:IOjava

File類

File類三種構造方法

在當前目錄下建立一個與Demo.txt檔名相關聯的檔案物件,注意要用雙斜線或反斜槓

File file = new File("D:\\Demo.txt");

在這裡定義了一個p為父級

String p ="D:/";
File file = new File(p,"Demo.txt");
File file = new File("D:/");
   File file1 = new File(file,"Demo.txt")
;

File類常用方法

獲取功能

getPath() 獲取路徑名

getName() 獲得檔名及最後一層的名稱

getAbsolutePath() 獲取絕對路徑名

getAbsoluteFile() 獲取絕對路徑所對應的File物件

getParent() 獲取父級路徑名

package com.lsy.javafile.day2;

import java.io.File;

public class Demo2 {
    public static void main(String[] args) {
        File file = new File("D:\\Demo\\Demo.txt"
); System.out.println(file.getPath()); System.out.println(file.getName());//getName()獲得檔名及最後一層的名稱 System.out.println(file.getAbsolutePath());//獲取絕對路徑所對應的File物件 System.out.println(file.getAbsoluteFile());//絕對路徑名 System.out.println(file.getParent());//獲取父級目錄 } }

在這裡插入圖片描述

exists()

是否存在這個檔案

canWrite() 這個檔案是否可寫

canRead() 這個檔案是否可讀

isDirectory() 檢查這個路徑是否為資料夾

isFile() 檢查這個路徑是否是檔案

length() 獲取檔案的長度(位元組數)

package com.lsy.javafile.day2;

import java.io.File;

public class Demo3 {
    public static void main(String[] args) {
        File file = new File("D:\\Demo\\圖解緩衝流2.png");
        System.out.println(file.exists());//exists()是否存在這個資料夾
        System.out.println(file.canWrite());//檢查這個檔案是否可寫
        System.out.println(file.canRead());//檢查這個檔案是否可讀
        System.out.println(file.isDirectory());//檢查這個路徑是否為資料夾
        System.out.println(file.isFile());//檢查這個路徑是否為檔案
    }
}

在這裡插入圖片描述

renameTo(file類例項物件) 更改檔名字

建立資料夾的功能

mkdir() 建立一個資料夾

mkdirs() 建立多級資料夾

package com.lsy.javafile.day2;

import java.io.File;

public class Demo4 {
    public static void main(String[] args) {
        File file = new File("D:\\Demo\\圖解緩衝流2.png");
        File file1 = new File("D:\\Demo\\圖解緩衝流1.png");
        System.out.println(file.renameTo(file1));//更改檔名字 必須是file例項物件
        File file2 = new File("D:\\Demo\\Demo2");
        System.out.println(file2.mkdir());//建立一個資料夾
        File file3 = new File("D:\\Demo\\Demo1\\a\\b\\c\\d\\e\\f\\g");
        System.out.println(file3.mkdirs());//建立多級資料夾
    }
}

delete() 刪除檔案

list() 獲取指定目錄下的所有自己檔案的名字,以字串陣列的形式返回,還有一個有篩選條件的list,使用匿名內部類new FilenameFilter()實現裡面的方法

package com.lsy.javafile.day2;
import java.io.File;
import java.io.FilenameFilter;
public class Demo5 {
    public static String  subFileType(String name){
         return  name.substring(name.lastIndexOf(".")+1);
    }
    public static void main(String[] args) {
        File file3 = new File("D:\\Demo");
       // System.out.println(file3.delete());//刪除資料夾 該資料夾不許為空
        File file = new File("D:\\陝西理工大學\\大一學習\\高數");
        String []str =file.list();//獲取指定目錄下的所有子級檔案的名字,以字串的形式返回
        for (String string:str) {
            System.out.println(string);
        }
        System.out.println("-----------------------------");
        //新增過濾條件形式的list 使用到匿名內部類
        String []str1= file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return subFileType(name).equalsIgnoreCase("ppt");
            }
        });
        for (String  string:str1) {
            System.out.println(string);
        }

    }
}