📄 sloc.java
字号:
// **********************************************************************// // <copyright>// // BBN Technologies// 10 Moulton Street// Cambridge, MA 02138// (617) 873-8000// // Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/util/wanderer/SLOC.java,v $// $RCSfile: SLOC.java,v $// $Revision: 1.2.2.2 $// $Date: 2004/10/14 18:27:48 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.util.wanderer;import java.io.EOFException;import java.io.File;import java.io.IOException;import com.bbn.openmap.io.BinaryBufferedFile;import com.bbn.openmap.io.FormatException;import com.bbn.openmap.util.ArgParser;import com.bbn.openmap.util.Debug;/** * Count the source lines of code but going through the directory and * counting ; and }. */public class SLOC implements WandererCallback { int sloc = 0; boolean DETAIL = false; public void setSLOC(int num) { sloc = num; DETAIL = Debug.debugging("sloc"); } public int getSLOC() { return sloc; } // do nothing on directories public void handleDirectory(File directory) {} // count the ; and } in each file. public void handleFile(File file) { if (!file.getName().endsWith(".java")) { return; } if (DETAIL) Debug.output("Counting code in " + file.getName()); int count = 0; try { BinaryBufferedFile bbf = new BinaryBufferedFile(file); try { while (true) { char c = bbf.readChar(); if (c == ';' || c == '}') { count++; } } } catch (EOFException eofe) { } catch (FormatException fe) { } bbf.close(); if (DETAIL) Debug.output(file.getName() + " has " + count + " LOC"); sloc += count; } catch (IOException ioe) { } } /** * Given a set of files or directories, parade through them to * change their case. * * @param argv paths to files or directories, use -h to get a * usage statement. */ public static void main(String[] argv) { Debug.init(); ArgParser ap = new ArgParser("SLOC"); if (argv.length == 0) { ap.bail("Counts ';' and '}' to sum up Source Lines Of Code\nUsage: java com.bbn.openmap.util.wanderer.SLOC <dir>", false); } ap.parse(argv); String[] dirs = argv; SLOC sloc = new SLOC(); Wanderer wanderer = new Wanderer(sloc); int runningTotal = 0; // Assume that the arguments are paths to directories or // files. for (int i = 0; i < dirs.length; i++) { sloc.setSLOC(0); wanderer.handleEntry(new File(dirs[i])); Debug.output("Source Lines of Code in " + dirs[i] + " = " + sloc.getSLOC()); runningTotal += sloc.getSLOC(); } if (dirs.length > 1) { Debug.output("Total Source Lines of Code in all directories = " + runningTotal); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -