我通过在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。

10-05 23:25