关于在控制台添加语句

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

标签: java

我开发了一个Java程序,它将计算文件夹中的文件数。可能有Java文件或文本文件,它们将计算代码行数。我们的想法是将文件名打印到控制台,然后是行计数。这部分完成,如下所示:

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

现在我已经硬编码了目录的位置,如下所示:

File directory = new File("C:/Test/");

我希望这更具互动性,并提示用户将位置输入控制台。用户按Enter后,它将按原样执行其余功能。

3 个答案:

答案 0 :(得分:2)

为什么要让它互动?为什么不直接使用main给出的args[]参数?

检查args [0]以确保它是一个有效的目录,然后继续生活。

File directory = new File(args[0]);

或者更好的是,您可以迭代args的所有元素,并对命令行中指定的每个目录执行检查。

答案 1 :(得分:0)

您可以使用System.out.println()将提示输出到控制台屏幕。然后,要获取它们的路径,请使用java.util中的Scanner类,例如

Scanner lineIn = new Scanner(System.in);
String input = lineIn.next();

该字符串输入可以是您的文件夹路径,但您可能希望对输入执行一些错误检查以获得正确的格式,良好的字符等

答案 2 :(得分:0)

您可以询问用户驱动器和主文件夹..

Scanner in=new Scanner(System.in);
System.out.println("Enter the Drive name like C,D,E etc");
String drive=in.next();
System.out.println("Enter the main folder name");
String main_folder=in.next();
File directory=new File(drive+":"+"//"+main_folder+"//");