1. 程式人生 > >Java中File類重修

Java中File類重修

等於 stat static 所有 NPU 完成 io流 main getname

IO流

概述

io流:輸入輸出流(input/output)。流是一組有順序的,有起點和終點的字節集合,是對各種數據傳輸的總稱或抽象。即數據在兩設備之間的傳輸稱為流。流的本質是數據傳輸。

  • InputStream:所有輸入流的超類
  • OutputSream:所有輸出流的超類

1、在指定的目錄中查找文件後綴為.txt的文件

import java.io.File;  

//在指定的目錄中查找文件  
public class FindFile {

    public static void main(String[] args) {
        // 在F盤查找文件後綴名為.txt的文件
        findFile(new File("F:/"), ".txt");
    }

    /**
     *查找文件的方法
     *@param target 查找目標
     *@param ext    文件擴展名
     */
    public static void findFile(File target, String ext) {
        if (target == null) {
            return;
        }

        if (target.isDirectory()) {
            File[] files = target.listFiles();

            // 若訪問c盤,有些是系統文件,可能返回空
            if (files != null) {
                for (File file : files) {
                    findFile(file, ".txt");// 遞歸調用
                }
            }
        } else {
            // 此處表示File是一個文件
            String name = target.getName().toLowerCase();
            if (name.endsWith(ext)) {
                System.out.println(target.getAbsolutePath());
            }
        }
    }// findFile

}

2、從文件讀取內容和向文件寫入內容輸

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class InputAndOutput {
    
    public static void main(String[] args) {
        in();
        out();
    }

    // 從文件讀取內容
    private static void in() {
        File file = new File("F:/test.txt");
        // 構建一個文件輸入對象
        try {
            InputStream in = new FileInputStream(file);

            StringBuilder sb = new StringBuilder();
            byte[] flush = new byte[1024];
            int len = -1;// 表示每次讀取的字節長度

            // 把數據讀入到數組中,並返回讀取的字節數,當不等於-1時,表示讀取到了數據,等於-1時表示讀取完成
            while ((len = in.read(flush)) != -1) {
                // 根據讀到的字節數組,在轉換為字符串內容,追加到StringBuilder中
                sb.append(new String(flush));
            }
            System.out.println(sb);

            // 關閉輸入流
            in.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }// in

    // 將內容輸出到文件
    private static void out() {
        // 確定目標文件
        File file = new File("F:/test.txt");
        // 構建一個文件輸出流對象
        try {
            OutputStream out = new FileOutputStream(file, true);// true 為追加標識
            // 要寫入文件的數據
            String info = "小河流水嘩啦啦";

            out.write(info.getBytes());
            out.flush();
            out.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }// out

}

Java中File類重修