import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class StaticsCodeingLine {
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
// 定义相关变量
int totalLine = 0;
int emptyLine = 0;
int commentLine = 0;
int codeLine = 0;
// 大家重点了解 Scanner类(网络搜索) 与 String类(教材P75及网络) 的使用
// 文件的路径
String strFileName;
// 使用命令行的方式,如果有命令行参数,则文件名从外界获取,否则使用指定文件
// 使用方式: java ComputeSourceLine filename (实际中用完整的文件名替代filename)
if(args.length>=1)
strFileName = args[0];
else
strFileName = "C:\\Users\\Administrator\\Workspaces\\MyEclipse 8.5\\123\\src\\StaticsCodeingLine.java";
// 使用Scanner进行读文件
Scanner sc = new Scanner(new File(strFileName));
while (sc.hasNextLine()) {
String strTmp = sc.nextLine();
// 去掉前后的空格
strTmp = strTmp.trim();
// 判断是否为空行、注释、代码行
if(strTmp.length()==0)
emptyLine ++;
else if(strTmp.length()>2 && "//".equals(strTmp.substring(0,2))==true)
commentLine ++;
else
codeLine ++;
// System.out.println(strTmp);
}
// 关闭
sc.close();
totalLine = emptyLine+commentLine+codeLine;
System.out.println("总行数="+totalLine);
System.out.println("空行数="+emptyLine);
System.out.println("注释行数="+commentLine);
System.out.println("代码行数="+codeLine);
}
}