2016-08-19 5 views
-1

ディレクトリに複数のファイルがありますが、同時にすべてを読みたいと思います。 私のコードでは、すべてのファイルを1つずつ読み込みます。ディレクトリ内のすべてのファイルに対して新しいバッファリングされたリーダーを作成する方法java


public void OptimiserListeDesTermes(String repertoireToFileTermes) throws IOException { 

    File dir = new File(repertoireToFileTermes); 

    if (dir.isDirectory()) { 

     File[] list = dir.listFiles(); 
     String nameFich = ""; 
     if (list != null) { 

      for (int i = 0; i < list.length; i++) { 

       nameFich = list[i].getPath(); 

       FileReader filereader = new FileReader(ReadPath(nameFich)); 

       BufferedReader reader = new BufferedReader(filereader); 

      } 
     } 
    } 
} 

答えて

1

このような何か:

public void OptimiserListeDesTermes(String repertoireToFileTermes) throws IOException { 
    File dir = new File(repertoireToFileTermes); 
    if (dir.isDirectory()) { 
     File[] list = dir.listFiles(); 
     if (list != null) { 
      Arrays.stream(list).filter(f -> f.isFile() && f.canRead()).parallel().forEach(file -> { 
       try { 
        BufferedReader reader = new BufferedReader(new FileReader(file)); 
        ... 
       } catch (FileNotFoundException ex) { 
        // log the error 
       } 
      }); 
     } 
    } 
} 

またはこのような?

public void OptimiserListeDesTermes(String repertoireToFileTermes) throws IOException { 
    File dir = new File(repertoireToFileTermes); 
    if (dir.isDirectory()) { 
     File[] list = dir.listFiles(); 
     if (list != null) { 
      int buffers = 0; 
      BufferedReader[] readers = new BufferedReader[list.length]; 
      for (File file : list) { 
       if (file.isFile() && file.canRead()){ 
        readers[buffers++] = new BufferedReader(new FileReader(file)); 
       } 

      } 
      readers = Arrays.copyOf(readers, buffers);     

      // do something with readers 
     } 
    } 
} 
+0

私はそれらのすべてを同時に読みたい場合は、すべてのファイルの最初の行を含む文字列の配列を作成する必要があります。なぜなら今私は内容を比較する必要があるからですお互いの中のすべてのファイル。 –

関連する問題