我通过在Test Folder中保留3个不同的文件来实现了如下所示的想法
public class FileCountLine {
public static void main(String[] args) throws FileNotFoundException {
Map<String, Integer> result = new HashMap<String, Integer>();
File directory = new File("C:/Test/");
File[] files = directory.listFiles();
for (File file : files) {
if (file.isFile()) {
Scanner scanner = new Scanner(new FileReader(file));
int lineCount = 0;
try {
for (lineCount = 0; scanner.nextLine() != null; lineCount++);
} catch (NoSuchElementException e) {
result.put(file.getName(), lineCount);
}
}}
System.out.println(result);
}}
但是作为输出的结果,我正在获取正在计算其中代码行数的文件,它们全部都排成一行,如下所示。
{ValidateWagRewardsRedemptionOptionPPI.java=73, IWalgreensRewardsPosLogSupport.java=134, WagEnrollmentInfoLine.java=111}
请告知我希望结果显示为如下所示的格式
WalgreensRewardsPosLogSupport.java=134,
WagEnrollmentInfoLine.java=111,
ValidateRewardsAARPManualEntryPPI.java=67
那是换行本身的每个文件,请告知需要为此做哪些必要的更改。
最佳答案
将System.out.println(result);
替换为
for(String e : result.keySet())
System.out.println(e+"="+result(e)+"\n")
您得到的是HashMap的默认toString。