単語のJava関連のファイルディレクトリの操作について

ディレクトリのファイルを書き込みます。ディレクトリ内のコードファイル、相関関数の操作を通じて探しています。ディレクトリにサブディレクトリが含まれている場合。コードは、サブディレクトリ内のファイルを探して、再帰的なメソッド呼び出しを持っています

操作に関連する機能を実行します。主な機能は、最初の数文字の最大数は、出力ファイルに表示されるユーザ入力要求の数に基づいています。

パッケージComkkeshngone;

// 意志出力データは、新しいファイル書きたい
のインポート * java.utilのクラスを。;
 輸入 java.io. * ;
 インポートjava.util.Scanner;
 パブリック クラスzongword
{
    静的 公共 ボイド gongneng(文字列FILE1)がスローIOExceptionが
    {
        System.out.println(「あなたは出力したいの前にいくつかの単語」);
        スキャナSC1 = 新しいスキャナ(System.in);
        INT WWW = sc1.nextInt()。
        int型 WW = 0 ;
        int型ヘクタール= 0 ;
        地図 <文字列、整数> =マップ新しい新しい HashMapを<>(); // マッピングマップを保存、などのアレイによって 
        ファイルファイル= 新しい新しいファイル(ファイル1)。
        FileReaderのFR = 新しいFileReaderの(ファイル);
        試します
        {
            BufferedReaderのBD = 新しいをBufferedReader(FR)。
            WENストリング = NULL ;
             ながら(!(WEN = bd.readLine())= NULL//は、データの1本のラインを読み出します
            {
                文字列[]ワード = wen.split( ""); // 文字列のアレイに記憶されたデータ列を複数の空間の行全体を介して 
                HA + = word.length;
                 のためのINT I = 0; I Wordを<長さ; I ++ 
                {
                    もし(ワード[I] .equals(」 " ))
                    {
                        続け;
                    }
                    IF(map.containsKey(ワード[I] .toLowerCase()))// この要素はセットをチェックする必要がある場合
                    、{
                         整数A = map.get(ワード[I] .toLowerCase())。++ ;
                         map.put(Wordの[I] .toLowerCase()、A); // 彼は登場回数に追加する
                    }
                     他の
                        map.put(Wordの[I] .toLowerCase()、 1); // ではありませんでした場合彼の値が割り当てられますA 
                }
                map.put( ""、0 );
            }
            fr.close();
        } キャッチ(例外E)// 例外ハンドラ
        {
            e.printStackTrace();
        }
        FILE2ファイル = 新しい新しいファイル( "D:新規フォルダ(6)\\ wen1.txt \\" );
         IF(!File2.exists())
        {
            試します
            {
                file2.createNewFile();
                System.out.println(「ファイルへのデータ出力を使用して、営業成績が動作し続け、新たな保持を作成する必要が存在しません」);
            }
            キャッチ(例外e)
            {
                e.printStackTrace();
            }
        }
        FileWriter FW = 新しいてFileWriter(FILE2)。
        BufferedWriterの幅BW = 新しいBufferedWriterの(FW)。
        整数MAX1。
        文字列のMAX2 = "" ;
        INT ; B <= HA、B ++、B = 1 
        {
            MAX1 = 0 ;
            MAX2 = ヌル;
             //は、単語の出現の最大数を見つける 
            の設定<文字列> = map.keySet SETを(); // コレクション内のキーオブジェクトのすべてのマップのコレクションを構築 
            するIterator <文字列> ITは(set.iteratorを=); // コレクションを作成しますイテレータ
            しばらく(it.hasNext())
            {
                文字列KEY1 = it.next()。
                整数A2 = map.get(KEY1)。
                もし(A2> MAX1)
                {
                    MAX1 = A2。
                    MAX2 = KEY1。
                }
            }
            // 主に単語の出現と同じ数があるかどうかを決定するために 
            、<文字列> SET2 = map.keySet()の設定; // コレクション内の主要なオブジェクトのすべてのマップのコレクション構築 
            のIterator <文字列> IT2 = set2.iteratorを(); // 作成コレクションイテレータ
            しばらく(it2.hasNext())
            {
                文字列KEY2 = it2.next()。
                整数A3 = map.get(KEY2)。
                もし(A3 == MAX1)
                {
                    SET <文字列> SET3 = map.keySet(); // コレクション内のキーオブジェクトのすべてのマップのコレクションを構築 
                    するIterator <文字列> = set2.iteratorのIT3は(); // コレクション・イテレータを作成し
                    ながら、(it3.hasNext())
                    {
                        文字列KEY4 = it3.next()。
                        整数A4 = map.get(KEY4)。
                        もし(A4 == A3)
                        {
                            もし(key2.compareTo(KEY4)<0 
                            {
                                KEY2 = KEY4。
                            }
                        }
                    }
                    もし(MAX1 == 0 
                    {
                        破ります;
                    }
                    bw.writeは(「最初の行の発生数」+ B + + KEY2 +「ビットワードは」+「の出現回数である」A3)。
                    bw.newLine();
                    System.out.print( "单词"+ KEY2 +"次数" + A3 +」 " )。
                    もし(WW == WWW)
                    {
                        System.out.println();
                        破ります;
                    }
                    WW ++ ;
                    map.put(KEY2、 0); // 彼は、背後にある閉塞を防止するために決定されるように、出力値の後にはゼロになります
                }
            }
            もし(WW == WWW)
            {
                System.out.println();
                破ります;
            }
        }
        System.out.println(「すべての関連データが画面表示にも(適切なフォルダに書き込まれています)」);
        bw.close();
        fw.close();
    }

    
    
    
    静的 プライベート ボイド getDirectory(ファイルのファイル)がスローIOExceptionが
    {
          ファイル・フィールド・リスト[] =のfile.listFiles()。
          もし(フィールド・リストは== NULL || flist.length == 0 ){
               返します
          }
          以下のために(ファイルF:フィールド・リスト){
               IF (f.isDirectory()){
                   // ここでは、すべてのフォルダ一覧表示されます
                   。getDirectory(F)
                   // getDirectory(F); 
              } それ以外の 
              {
                 
                  System.out.println( "ファイル==>" + f.getAbsolutePath());
                  
                 gongneng(f.getAbsolutePath())。
                  System.out.println();
              }
          }
    }
    静的な int型の Q1 = 0 ;
    静的スキャナSC = 新しいスキャナ(System.in)。
    公共の 静的な 無効メイン(文字列[] args)をスローIOExceptionが
    {
        パス文字列 = "D:\\新しいフォルダ(10)" 
        ファイルのFM = 新しいファイル(パス);   
        getDirectory(FM)。
        
    }
}

主にファイルを探すディレクトリ内のファイルだけでなく、関連する操作再帰呼び出しに。

おすすめ

転載: www.cnblogs.com/dazhi151/p/11794760.html