zoukankan      html  css  js  c++  java
  • 课后作业----计算文件的大小

    经过几天的学习,对文件的知识了解了一些。现在来完成课后作业

    思路:获取文件的大小,即文件名.length() (即字节长度),但是该方法只适用于文件,而不适用于文件夹,如果用于文件的话则,返回的长度为0.

      补充:文件名.length()为0有两种情况:(1):该文件不存在(2):该文件是文件夹

      所以,再求文件的大小,既要考虑文件是否存在,也要考虑是否为文件夹,如果是文件夹的话,则需要把它的子文件求出,可用文件名.listFiles()方法,但是记住,该方法只是返回一层文件,有可能你的子文件也是文件夹,所以这个时候就需要递归方法。

      补充:文件.list()方法是获取子文件的文件名,也是一层。

    package com.testHomework;
    
    import java.io.File;
    
    public class getFileLength {
        public static void main(String[] args) {
            
            // 获取文件
            File file = new File("E:/QQ文件");
            long length = getLength(file);
            System.out.println(length);
        }
        static long length = 0;
        public static long getLength(File file) {
            /*
             *  long length = 0; 
             *   这是错误的代码
             */
            if(null!=file&&file.exists()) {
                if(file.isFile()) { // 如果是文件,则获取文件的大小
                    length += file.length();
                }else { //如果是文件夹的化,则获取取子孙文件
                    File[] subfiles = file.listFiles();
                    // 遍历子孙文件
                    for(File f:subfiles) {
                        getLength(f);
                    }
                }
            }
            return length;
        }
    }

    上代码:运行结果:  文件大小:

    代码反思:刚开始写时,返回的长度一直为0,原因是我把length变量放到方法里,以至于它每次调用函数执行一次赋0的操作。

  • 相关阅读:
    python socks5 代理服务
    F# 语言参考【摘自MSDN】
    vs2003版本的程序转换为vs2008版本时出现的一些问题及解决办法
    【转】SQL to Mongo Mapping Chart
    jQuery UI Download
    jQuery UI Multiselect
    jqGrid search oper
    apache下用expires_module让浏览器缓存静态文件
    【转】谈谈浏览器的缓存过期时间
    USACO 1.1 Friday the Thirteenth
  • 原文地址:https://www.cnblogs.com/yangxiao-/p/11818387.html
Copyright © 2011-2022 走看看