Código de clase de herramienta, obtenga el número total de líneas de todos los archivos Java en el proyecto actual, el número de líneas de código, el número de comentarios y el número de líneas en blanco
La copia del código es la siguiente:
import java.io.bufferedReader;
import java.io.file;
import java.io.fileInputStream;
import java.io.filenotfoundException;
import java.io.filreader;
import java.io.ioException;
import java.io.reader;
import java.util.regex.matcher;
import java.util.regex.pattern;
/**
*
* @Author Administrator
*
*/
clase pública Javacode {
static final static private Project_dir = "c: // test";
privado static int totle = 0; // número total de filas
privado static int fuente = 0; // Número de líneas de código
privado estático intank = 0; // Número de líneas en blanco
PRIVADO ESTÁTICO INT COMENTARIOS = 0; // Número de comentarios
/**
* Leer archivos Java en la carpeta
* @param dir
*/
Private static void listNext (dir) {
Archivo [] archivos = dir.listFiles ();
for (int i = 0; i <files.length; i ++) {
// discernir si se trata de una carpeta.
if (files [i] .isDirectory ()) {
listNext (archivos [i]);
} demás {
intentar {
if (files [i] .getName (). Endswith (". java")) {
System.out.println (archivos [i] .getabsolutePath ());
javaline (archivos [i]);
}
} Catch (Exception e) {
E.PrintStackTrace ();
}
}
}
}
/**
* Lea el número total de líneas de archivo Java, número de líneas de código, número de líneas en blanco, número de líneas de comentarios
* @param F
* @throws ioexception
* @throws filenotFoundException
*/
Private static void javaline (archivo f) lanza FileNotFoundException, ioException {
Cadena strline = "";
Cadena str = fromfile (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) {
en blanco ++;
} else if (strline.charat (0) == '*' || strline.charat (0) == '/') {
comentarios ++;
}demás{
fuente ++;
Cadena regex = "^*//";
if (regex (strline, regex)) {
comentarios ++;
}
}
str = str.substring (str.indexof ('/n') + 1, str.length ());
}
}
}
/**
* Lea el archivo Java como una matriz de personajes
* @param f
* @devolver
* @throws filenotFoundException
* @throws ioexception
*/
Cadena estática privada desde el archivo (archivo f) lanza FileNotFoundException, ioException {
FileInputStream fis = new FileInputStream (f);
byte [] b = nuevo byte [(int) f.length ()];
fis.read (b);
fis.close ();
devolver una nueva cadena (b);
}
/**
* Partido regular
* @param str Enter String
* @param regex cadena de juego regular
* @devolver
*/
Regex booleano estático privado (string str, string regex) {
Patrón p = patrón.compile (regex);
Matcher M = p.matcher (STR);
Resultado booleano = m.find ();
resultado de retorno;
}
public static void main (string [] args) lanza FileNotFoundException, ioException {
// archivo root = nuevo archivo (proyect_dir);
Archivo directorio = nuevo archivo (""); // El parámetro está vacío
// Obtener la ruta del proyecto
String ProjectFile = Directory.GetCanonicalPath ();
System.out.println (ProjectFile+"============================================== =======);
listNext (nuevo archivo (ProjectFile));
System.out.println (totle+1);
System.out.println (fuente);
System.out.println (en blanco);
System.out.println (comentarios);
}
}