1. 程式人生 > >IO流之檔案的複製,刪除,顯示位元組大小

IO流之檔案的複製,刪除,顯示位元組大小

 檔案的複製

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Test {
    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("d:/微信圖片_20181215200356.jpg");
            FileOutputStream fos = new FileOutputStream("H:/微信圖片_20181215200356.jpg");
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = fis.read(buffer)) != -1) {
                fos.write(buffer, 0, len);
                fos.flush();
            }
            fis.close();
            fos.close();
            System.out.println("over");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

檔案的刪除

import java.io.File;

public class Test2 {

    public static void main(String[] args) {
        File dir=new File("d://liu");
        deleteFile(dir);
    }
    private static void deleteFile(File dir) {
        File[] files = dir.listFiles();//1,獲取該資料夾下的所有的檔案和資料夾
        for (File file : files) {//2,遍歷陣列
            if (file.isFile()) {//3,判斷是檔案直接刪除
                file.delete();
            } else {
                deleteFile(file); //4,如果是資料夾,遞迴呼叫
            }
        }
        dir.delete();//5,迴圈結束後,把空資料夾刪掉
        System.out.println("刪除完畢");
    }
}

檔案的大小

import java.io.File;
import java.util.Scanner;

public class Test1 {
    /**
     * @param args
     * 需求:1,從鍵盤接收一個資料夾路徑,統計該資料夾大小
     */

    public static void main(String [] args){
        File dir = getDir();
        System.out.println(getFileLength(dir));
    }
    //從鍵盤接收一個資料夾路徑
    public static File getDir(){
        Scanner sc=new Scanner(System.in);
        System.out.println("請輸入一個資料夾路徑");
        while(true){//2,定義一個無限迴圈
            String line=sc.nextLine();//3,將鍵盤錄入的結果儲存並封裝成File物件
            File dir = new File(line);
            if(!dir.exists()){
                System.out.println("您錄入的資料夾路徑不存在,請輸入一個資料夾路徑:");
            }else if(dir.isFile()){//4,對File物件判斷
                System.out.println("您錄入的是檔案路徑,請輸入一個資料夾路徑:");
            }else{
                return dir;//  5,將資料夾路徑物件返回

            }
        }
    }
//統計該資料夾大小
    public static long getFileLength(File dir){
        long len=0;//1,定義一個求和變數
        File[] subFiles=dir.listFiles();//2,獲取該資料夾下所有的檔案和資料夾listFiles();
        for (File subFile:subFiles) {  //3,遍歷陣列
            if(subFile.isFile()){
                len=len+subFile.length(); // 4,判斷是檔案就計算大小並累加
            }else{
                len=len+getFileLength(subFile);//5,判斷是資料夾,遞迴呼叫
            }
        }
        return  len;
    }

}