我开发了一个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后,它将按原样执行其余功能。
答案 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+"//");