Tool-Class-Code, erhalten Sie die Gesamtzahl der Zeilen aller Java-Dateien im aktuellen Projekt, die Anzahl der Codezeilen, die Anzahl der Kommentare und die Anzahl der leeren Zeilen
Die Codekopie lautet wie folgt:
Import Java.io.BufferedReader;
Import Java.io.file;
import Java.io.FileInputStream;
importieren java.io.filenotfoundException;
Import Java.io.Filereader;
importieren java.io.ioException;
Import Java.io.reader;
Import Java.util.Regx.Matcher;
Import Java.util.Regex.Pattern;
/**
*
* @Author Administrator
*
*/
öffentliche Klasse Javacode {
private statische endgültige String -Projekt_Dir = "C: // Test";
Private statische int totle = 0; // Gesamtzahl der Zeilen
private statische int source = 0; // Anzahl der Codezeilen
private static int leer = 0; // Anzahl der leeren Zeilen
private statische int commenter = 0; // Anzahl der Kommentare
/**
* Lesen Sie Java -Dateien im Ordner
* @param dir
*/
private statische Void Listnext (Datei Dir) {
Datei [] file = dir.listfiles ();
für (int i = 0; i <files.length; i ++) {
// Erkennen Sie, ob es sich um einen Ordner handelt.
if (Dateien [i] .isDirectory ()) {
Listnext (Dateien [i]);
} anders {
versuchen {
if (Dateien [i] .getName (). Endswith (". Java")) {
System.out.println (Dateien [i] .Getabsolutepath ());
Javaline (Dateien [i]);
}
} catch (Ausnahme e) {
E. printstacktrace ();
}
}
}
}
/**
* Lesen Sie die Gesamtzahl der Zeilen der Java -Datei, die Anzahl der Codezeilen, die Anzahl der leeren Zeilen, die Anzahl der Kommentarezeilen
* @param f
* @throws ioException
* @Throws FilenotFoundException
*/
private static void javaline (Datei f) löscht FilenotfoundException, ioException {
String strline = "";
String str = from File (f);
if (str.length ()> 0) {
while (Str.Indexof ('/n')! = -1) {
Totle ++;
//System.out.println(totle);
strline = str.substring (0, str.Indexof ('/n')). trim ();
// str = str.substring (str.Indexof ('/n') + 1, str.length ());
if (strline.length () == 0) {
leer ++;
} else if (strline.charat (0) == '*' || strline.charat (0) == '/') {
Kommentare ++;
}anders{
Quelle ++;
String regex = "^*//";
if (regex (strline, regex)) {
Kommentare ++;
}
}
str = str.substring (str.Indexof ('/n') + 1, str.length ());
}
}
}
/**
* Lesen Sie die Java -Datei als Zeichenarray
* @param f
* @zurückkehren
* @Throws FilenotFoundException
* @throws ioException
*/
private statische Zeichenfolge aus der Datei (Datei f) löscht FilenotfoundException, IOException {
FileInputStream fis = new FileInputStream (f);
byte [] b = new Byte [(int) f.length ()];
fis.read (b);
fis.close ();
neue Zeichenfolge zurückgeben (b);
}
/**
* Regelmäßiges Match
* @Param StR Geben Sie die Zeichenfolge ein
* @param regex reguläre Matching -Zeichenfolge
* @zurückkehren
*/
private static boolean regex (String str, String regex) {
Muster p = muster.comPile (regex);
Matcher M = P.Matcher (str);
boolescher Ergebnis = M.Find ();
Rückgabeergebnis;
}
public static void main (String [] args) löst FilenotFoundException, IoException {aus
// Datei root = neue Datei (Projekt_Dir);
Dateiverzeichnis = neue Datei (""); // Der Parameter ist leer
// den Projektpfad erhalten
String ProjectFile = Directory.getCanonicalPath ();
System.out.println(projectFile+"========================================== ========);
ListNext (neue Datei (ProjectFile));
System.out.println (Totle+1);
System.out.println (Quelle);
System.out.println (leer);
System.out.println (Kommentare);
}
}