`
lyx_2709
  • 浏览: 314668 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

流写文件统计

阅读更多
详细见程序注释。
java 代码
 
  1. import java.io.*;  
  2. import java.util.*;  
  3.   
  4. class  JavaCounter  
  5. {  
  6.     private int fileCount;                      //记录java文件数目  
  7.     private int rowCount;                       //记录代码行数  
  8.     private int classCount ;                        //记录类数量  
  9.     private Properties classes = new Properties();  //记录所有的类名,里面每一个元素都是 (类名:个数) 成对出现  
  10.     private int maxClassCount ;                 //记录最多类名的次数  
  11.     private String maxClassName;                    //记录最多类名的名称  
  12.   
  13.     public static void main(String[] args) throws IOException  
  14.     {  
  15.         JavaCounter javaCounter = new JavaCounter();  
  16.         javaCounter.countFiles(new File("F:\\javasourcecode"));  
  17.         //javaCounter.countFiles(new File("e:/t1102/j2se"));  
  18.         javaCounter.countMaxClassName();  
  19.         javaCounter.saveInfo("javaInfo.txt");  
  20.         javaCounter.saveClasses("classInfo.txt");  
  21.     }  
  22.     //扫描指定的目录,记录该路径下能找的到的java源文件的数目  
  23.     public void countFiles(File dir) throws IOException{  
  24.         //列出该目录下的所有文件,做循环  
  25.         File[] files = dir.listFiles();  
  26.         for(int i=0;i<files.length;i++){  
  27.             //如果是个文件  
  28.             if(files[i].isFile()){  
  29.                 //如果是java文件,则文件数目加1,调用方法计算该文件中的行数  
  30.                 if(files[i].getName().endsWith(".java")){  
  31.                     this.fileCount++;  
  32.                     this.countRows(files[i]);//a.java  
  33.                 }else if(files[i].getName().endsWith(".class")){//如果是class文件,则调用方法计算类数量  
  34.                     this.countClasses(files[i].getName());  
  35.                 }  
  36.             }  
  37.             //如果是个路径,则嵌套调用本方法  
  38.             else{  
  39.                 countFiles(files[i]);  
  40.             }  
  41.         }  
  42.     }  
  43.     //扫描指定的java文件,记录文件中代码的行数  
  44.     public void countRows(File javaFile) throws IOException{  
  45.         //构造成BufferedReader,便于记录行数  
  46.         BufferedReader br = new BufferedReader(new FileReader(javaFile));  
  47.         String line;  
  48.         while( (line=br.readLine())!=null ){  
  49.             this.rowCount++;  
  50.         }  
  51.         br.close();  
  52.     }  
  53.     //记录类的数量,并将类名存储起来  
  54.     public void countClasses(String className){//b.c  
  55.         this.classCount++;  
  56.         className = className.substring(0,className.length()-6);  
  57.         //判断集合里是否已经有同名的类,如果有的话就将其值加1,如果没有就新增一个  
  58.         if(classes.getProperty(className)!=null){  
  59.             int count = Integer.parseInt(classes.getProperty(className));  
  60.             classes.setProperty(className,count+1+"");  
  61.         }else{  
  62.             classes.setProperty(className,1+"");  
  63.         }  
  64.     }  
  65.     //统计最大的类名的个数  
  66.     public void countMaxClassName(){  
  67.         Enumeration enu = classes.propertyNames();  
  68.         while(enu.hasMoreElements()){  
  69.             String cname = (String)enu.nextElement();  
  70.             int c = Integer.parseInt(classes.getProperty(cname));  
  71.             if(c>maxClassCount){  
  72.                 maxClassCount=c;  
  73.                 maxClassName=cname;  
  74.             }  
  75.         }  
  76.     }  
  77.     //将这几个变量的信息输出到一个文件保存起来  
  78.     public void saveInfo(String fileName) throws IOException{  
  79.         PrintWriter pw = new PrintWriter(new FileWriter(fileName));  
  80.         pw.println("java源文件个数:"+this.fileCount);  
  81.         pw.println("共计行数:"+this.rowCount);  
  82.         pw.println("共计类数:"+this.classCount);  
  83.         pw.println("最多的类名是:"+this.maxClassName+",出现了 "+this.maxClassCount+" 次");  
  84.         pw.close();  
  85.     }  
  86.     //将类名及其数量保存起来  
  87.     public void saveClasses(String fileName) throws IOException{  
  88.         FileOutputStream fos = new FileOutputStream(fileName);  
  89.         this.classes.store(fos,"all classes and classes count");  
  90.         fos.close();  
  91.     }  
  92. }  
分享到:
评论
1 楼 hongyuzhe 2007-04-02  
基础不行,看起来,很晕!要加强学习!

相关推荐

    从txt文件中读取并统计字符频率

    在源代码文件中,我们首先需要包含必要的头文件,如`&lt;iostream&gt;`用于输入输出操作,`&lt;fstream&gt;`用于文件流操作,以及`&lt;map&gt;`或`&lt;unordered_map&gt;`用于存储字符及其频率: ```cpp #include #include #include ``` ...

    文件数量统计工具.zip

    这对于处理大量文件时,尤其是进行文件清理、归档或者分析工作流效率时非常有用。用户只需输入或选择所需的文件扩展名,工具就会自动扫描并返回对应类型文件的数量。 其次,当用户不指定任何文件类型时,工具将默认...

    多个文件夹内文件数目统计程序,支持多种文件格式

    至于压缩包子文件的文件名称列表,`lpk.dll`可能是一个动态链接库文件,它是Windows系统中提供特定功能的模块,可能被`文件数目统计.exe`调用来处理文件统计任务。`文件数目统计.exe`是程序的主执行文件,双击运行后...

    java 大文件ip 统计

    另外,`Files.lines()`方法是Java 8引入的新特性,它允许我们以流的方式处理文件内容,适合于文件行的迭代。 对于IP地址的统计,我们需要将每一行的文本(假设每行都是一个IP地址)转化为IP对象。Java的`...

    java 统计指定文件中的字符个数

    在Java编程语言中,统计指定文件中的字符个数是一项常见的任务,这主要涉及到文件I/O操作和字符流处理。下面将详细讲解如何实现这个功能,以及相关的重要知识点。 首先,要进行文件I/O操作,Java提供了`java.io`包...

    雨流统计(matlab),雨流统计与疲劳载荷LDD,matlab

    在MATLAB中,"yuliu.m"文件很可能包含了实现雨流统计的函数代码。此函数可能包括以下步骤: 1. **读取数据**:从"yssj.txt"文本文件中读取应力序列。 2. **预处理**:对数据进行必要的预处理,如去除异常值或平滑...

    java统计单个文件行数

    总的来说,统计文件行数是Java开发中基础但实用的操作,通过熟练掌握I/O流和异常处理,我们可以编写出健壮且高效的代码来完成这个任务。对于更复杂的需求,如统计特定格式的文件,可能需要结合其他技术,如解析特定...

    统计文件行数(VB。NET)

    在VB.NET中,统计文件行数是一项常见的任务,特别是在数据处理和分析的场景下。这个程序实例为你提供了一个基础的解决方案,帮助初学者理解如何利用VB.NET进行文件输入/输出(I/O)操作。下面我们将详细探讨相关的知识...

    java读写文件

    在Java编程语言中,读写文件是常见的操作,无论是在Web项目中处理用户上传的文件,还是在系统中保存和加载配置数据,都需要对文件进行读取和写入。本篇将围绕“Java读写文件”这一主题,深入探讨相关的知识点。 ...

    JAVA编程:统计英文文本文件中的字符数目和单词数目

    文件统计。编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目。 (程序去除文本开头的空格与回车,统计中将回车换行也统计在内,算两个...

    H264裸流文件

    标题中的“H264裸流文件”指的是不包含封装格式的H264编码视频流,这种格式通常用于网络传输或实时通信场景,比如在RTP(Real-time Transport Protocol)协议下进行数据包发送。H264,全称是ITU-T H.264/AVC...

    H265码流文件和码流分析工具

    本文将深入探讨H265码流文件以及用于分析这些码流的工具——Elecard HEVC Analyzer。 首先,让我们理解H265码流文件。码流文件通常包含经过编码的视频数据,这些数据是按照H265编码标准进行压缩的。H265利用更复杂...

    NoumberOfWords。统计你所写的博客字数仅支持Markdown文件

    例如,可以使用Java的IO流处理来读取Markdown文件,使用正则表达式或专用的Markdown解析库(如Pandoc或Commons-Markdown)来解析文本内容,然后进行字数统计。 在实际应用中,"NoumberOfWords"可能包含以下核心功能...

    读取h264文件并发送为RTP码流

    本文将详细讲解如何读取H264文件并将其转换为RTP码流进行传输。 首先,我们要了解H264编码。H264,也称为AVC(Advanced Video Coding),是一种高效能的视频编码标准,广泛应用于高清视频会议、在线视频流媒体等...

    java 目录及文件的大小统计 程序及源代码

    在Java编程中,统计目录及文件的大小是一项常见的任务,特别是在进行系统监控、数据分析或者文件管理应用中。本文将深入探讨如何使用Java实现这个功能,包括计算目录中所有文件的平均长度以及每个目录的平均文件数量...

    IO文件流学习代码-电话统计

    在call目录下有很多文件夹和文件。在这些文件中存放着某月的电信话单。 其中,ABC分别为不同的套餐类型。 A套餐:每月前十分钟免费,月基本费10元。超过十分钟之后,每分钟0.3元。 B套餐:每月前二十分钟免费,月...

    swf文件结合javascript的统计图

    本教程将重点讨论如何使用SWF(ShockWave Flash)文件与JavaScript相结合来创建出色的统计图表。标题提到的"swf文件结合javascript的统计图"是一种流行的技术,用于在网页上实现动态、交互的数据展示。 SWF是一种由...

    用c++写的统计英文文章中的单词个数

    - `std::getline()`函数用于从输入流读取一行,可以用来读取整个英文文章。 2. **字符分割**: - 英文单词通常由空格、换行符或标点符号分隔。可以使用循环和条件判断来遍历字符串,遇到这些分隔符就认为是单词的...

    java字符流练习.doc

    我们还可以看到如何使用 Java 字符流来实现一些实际的应用,例如文件重命名和统计文件中的字母出现次数。 Java 字符流是一种基本的 I/O 操作,掌握 Java 字符流的操作是 Java 编程的基础之一。

    基于文件流的Java实现的学生选课系统(有实验报告)

    通过对学生选课管理系统的分析与设计,具体实现了课程信息维护(列出所有课程信息供查阅、列出某一门课程信息供查阅、增加一门课程、删除一门课程、修改某一门课程的信息)、学生信息维护((列出所有学生信息供查阅、列...

Global site tag (gtag.js) - Google Analytics