关于在控制台中单独显示的行

时间:2012-06-27 17:31:44

标签: java

我通过在测试文件夹中保留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

这是新行中的每个文件,请告知需要进行哪些必要的更改。

5 个答案:

答案 0 :(得分:1)

System.out.println(result);替换为

for(String e : result.keySet())
    System.out.println(e+"="+result(e)+"\n")

你得到的是HashMap的默认toString。

答案 1 :(得分:0)

for (Map.Entry<String, Integer> entry : result.entrySet()) {
    String key = entry.getKey();
    Integer value = entry.getValue();
    System.out.println(key+"="+value+",");
}

答案 2 :(得分:0)

你不能像这样打印HashMap

System.out.println(result); 

使用此

for( Map.Entry<String, Integer> entry:result.entrySet()){
  System.out.println(entry.getKey()+" = "+entry.getValue());
}

而不是

System.out.println(result);

答案 3 :(得分:0)

试试这个......

for( Map.Entry<String, Integer> m : result.entrySet())

{

  System.out.println(m.getKey()+" = "+m.getValue());

}

答案 4 :(得分:0)

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

class FileCountLine {
public static void main(String[] args) throws FileNotFoundException {

        Map<String, Integer> result = new HashMap<String, Integer>();

        File directory = new File("/home/joker/Projects/eclipse");
        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 (Exception e) {
                    result.put(file.getName(), lineCount);
                }
            }}

        Set set = result.entrySet() ;
        Iterator itr = set.iterator();
       while(itr.hasNext())
       {
           System.out.println(itr.next()+"\n");
       }


            }}