package it.univpm.deit.semedia.musicuri.utils.misc; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; /** * Utility class used for calculating the SoC (Summer of Code) LOC (Lines Of Code) in a java source code directory */ public class SoCProjectLineCounter { public static void main(String[] args) throws IOException { File directory = new File(args[0]); File[] allFiles = directory.listFiles(); File currentFile; int totalLinesOfCode = 0; for (int i=0; i< allFiles.length; i++) { currentFile = allFiles[i]; if (isJavaFile(currentFile)) totalLinesOfCode += countLines (currentFile); } System.out.println("Total Lines Of Java Code in Directory: " + directory.getName() + " - " + totalLinesOfCode); } private static int countLines(File file) throws IOException { BufferedReader br = new BufferedReader(new FileReader(file)); int line = 0; while(br.readLine() != null) line++; return line; } private static boolean isJavaFile(File file) { String fname = file.getName(); String extension = fname.substring(fname.lastIndexOf('.') + 1); if (extension.equalsIgnoreCase("java")) return true; else return false; } }