给定一个源代码文件(.cs, .java),输出该文件的总行数、空行数、注释行数、代码行数

来源:互联网 发布:ddos 阿里云 编辑:程序博客网 时间:2024/05/17 02:59
package iotest;import java.io.BufferedReader;    import java.io.File;    import java.io.FileNotFoundException;    import java.io.FileReader;    import java.io.IOException;    import java.util.Scanner; public class cwq {    private static int whiteLines = 0;      private static int commentLines = 0;      private static int normalLines = 0;          public static void main(String[] args) {    File f = new File("E:\\workspace\\cwqq\\src\\iotest\\cwq.java");     sumCode(f);        }    public static void sumCode(File file){     BufferedReader br = null;              boolean comment = false;              try {                  br = new BufferedReader(new FileReader(file));                  String line = "";                  try {                      while ((line = br.readLine()) != null) {                          line = line.trim();                          if (line.matches("^[\\s&&[^\\n]]*$")) {                              whiteLines++;                          } else if (line.startsWith("/*") && !line.endsWith("*/")) {                              commentLines++;                              comment = true;                          } else if (true == comment) {                              commentLines++;                              if (line.endsWith("*/")) {                                  comment = false;                              }                          } else if (line.startsWith("//")) {                                  commentLines++;                          } else {                              normalLines++;                          }                      }                  } catch (IOException e) {                          e.printStackTrace();                  }              } catch (FileNotFoundException e) {                      e.printStackTrace();              } finally {                  if (br != null) {                      try {                          System.out.println("空行数:"+whiteLines);                         System.out.println("注释行数:"+commentLines);                         System.out.println("代码行数:"+normalLines);                        System.out.println("总行数:"+(whiteLines+commentLines+normalLines));                       br.close();                          br = null;                      } catch (IOException e) {                          e.printStackTrace();                      }                  }              }          }     }      

0 0
原创粉丝点击