1

フォルダ内のファイル数をカウントする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キーを押すと、残りの機能がそのまま実行されます。

4

3 に答える 3

2

なぜインタラクティブにするのですか?args[]mainが指定されているパラメータを使用しないのはなぜですか?

args [0]をチェックして、それが有効なディレクトリであることを確認してから、lifeに進みます。

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

または、さらに良いことに、argsのすべての要素を反復処理して、コマンドラインで指定されたすべてのディレクトリに対してチェックを実行できます。

于 2012-06-27T17:58:41.697 に答える
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+"//");
于 2012-06-27T17:59:23.800 に答える
0

System.out.println()を使用して、コンソール画面にプロンプ​​トを出力できます。次に、パスを取得するには、java.utilのScannerクラスを使用します。例:

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

その文字列inputは、フォルダパスにすることができますが、正しい形式、適切な文字などについて、入力に対してエラーチェックを実行する必要があります。

于 2012-06-27T17:58:48.893 に答える