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;
    }

}

猜你喜欢

转载自blog.csdn.net/qq_36523209/article/details/85375410