• File类应用例子


    public class test1 {
        /*
         * 从键盘录入一个文件夹, 统计该文件夹大小
         */
        public static void main(String[] args) {
            File dir = getFile();
            System.out.println(getFileLength(dir));
        }
        private static long getFileLength(File dir) {
            long len = 0;
            File[] farr = dir.listFiles();
            for (File subFile : farr) {
                if (subFile.isFile()) {
                    len = len + subFile.length();     // 字节长度就是文件大小
                } else {
                    len = len + getFileLength(subFile);   //  遇到文件夹就递归一下
                }
            }
            return len;
        }
    
        public static File getFile() {    // 获取键盘输入
            Scanner s1 = new Scanner(System.in);
            System.out.println("请输入一个文件夹路径");
            
            while(true){
                String path = s1.nextLine();
                File f1 = new File(path);
                if (f1.exists()) {
                    if (f1.isFile()) {
                        System.out.println("你输入的是一个文件路径,请重新输入一个文件夹路径");
                    }else{
                        return f1;
                    }
                }else {
                    System.out.println("你输入的路径不存在,请重新输入一个文件夹路径");
                }
            }
        }
    }
    import java.io.File;
    
    public class test2 {
        
        public static void main(String[] args) {
            File dir = test1.getFile();
            deleteFile(dir);
        }
    
        private static void deleteFile(File dir) {  //  递归删除文件夹
            File[] subFiles = dir.listFiles();
            for (File subFile : subFiles) {
                if (subFile.isFile()) {
                    subFile.delete();
                } else {
                    deleteFile(subFile);
                }
            }
            dir.delete();
        }
    
    }
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import javax.swing.text.DefaultEditorKit.CopyAction;
    
    public class test3 {
        /*
         * 从键盘接收2个文件夹路径,把其中一个文件夹拷贝到另一个文件夹中
         */
        public static void main(String[] args) throws IOException {
            File src = test1.getFile();
            File dest = test1.getFile();
            copy(src,dest);
        }
    
        private static void copy(File src, File dest) throws IOException {
            File newDir = new File(dest,src.getName());
            newDir.mkdir();
            File[] subFiles = src.listFiles();
            for (File subfile : subFiles) {
                if(subfile.isFile()){
                    BufferedInputStream b1 = new BufferedInputStream(new FileInputStream(subfile));
                    BufferedOutputStream b2 = new BufferedOutputStream(
                            new FileOutputStream(new File(newDir,subfile.getName())));
                    int  b;
                    while ((b = b1.read()) != -1) {
                        b2.write(b);
                    }
                    b1.close();
                    b2.close();
                    
                }else{
                    copy(subfile, newDir);
                }
            }
        }
    import java.io.File;
    import java.io.PrintStream;
    
    public class test4 {
        /*
         * 从键盘获取一个文件夹,按照层级打印文件和文件夹
         */
        public static void main(String[] args) {
            File dir = test1.getFile();
            PrintLev(dir,0);
        }
    
        public static void PrintLev(File dir,int lev) {
            File[] subFiles = dir.listFiles();
            for (File subfile : subFiles) {
                for (int i = 0; i <= lev; i++) {
                    System.out.print("	");
                }
                System.out.println(subfile);
                if (subfile.isDirectory()) {
                    PrintLev(subfile,lev + 1);
                }
            }
        }
    
    }
    import java.io.FileInputStream;
    
    public class test5 {
        /*
         * 斐波那契数列
         */
        public static void main(String[] args) {
            int x = fei(12);
            System.out.println(x);
            int[] arr = new int[12];
            for (int i = 0; i < arr.length; i++) {
                arr[i] = fei(i+1);
                System.out.println(arr[i]);
            }
            
        }
    
        private static int fei(int n) {
            
            if (n==1 || n==2) {
                return 1;
            } 
            else {
                return fei(n-1) + fei(n-2);
            }
        }
    
    }
    import java.math.BigInteger;
    
    public class test6 {
        /*
         * 1000的阶乘  所有零和尾部零的个数
         */
        public static void main(String[] args) {
            //demo1();    //获取所有0
            demo2();     // 获取尾部0 
        }
    
        public static void demo2() {
            BigInteger b1 = new BigInteger("1");
            for (int i = 1; i <= 1000; i++) {
                BigInteger b2 = new BigInteger(i+"");
                b1 = b1.multiply(b2);
            }
            //System.out.println(b1);
            String str = b1.toString();
            StringBuilder sb1 = new StringBuilder(str);
            str = sb1.reverse().toString();
            int count = 0 ;
            for (int i = 0; i < str.length(); i++) {
                if ('0'!=str.charAt(i)) {
                    break;
                } else {
                    count++;
                }
                
                
            }
            System.out.println(count);
        }
    
        public static void demo1() {
            BigInteger b1 = new BigInteger("1");
            for (int i = 1; i <= 1000; i++) {
                BigInteger b2 = new BigInteger(i+"");
                b1 = b1.multiply(b2);
            }
            //System.out.println(b1);
            String str = b1.toString();
            int count = 0 ;
            for (int i = 0; i < str.length(); i++) {
                if ('0'==str.charAt(i)) {
                    count= count +1 ;
                }
                
            }
            System.out.println(count);
        }
    
    }
    竹杖芒鞋轻胜马,一蓑烟雨任平生。 回首向来萧瑟处,也无风雨也无晴。
  • 相关阅读:
    linux常用命令
    10.8统计英文词频
    9月10号作业
    华氏温度与摄氏温度转换
    小故事
    Java的工厂模式(三)
    Javascript实现图片翻转
    Java的工厂模式(二)
    Java的工厂模式(一)
    Java新建线程的两种方式
  • 原文地址:https://www.cnblogs.com/yaobiluo/p/11324453.html
Copyright © 2020-2023  润新知