-4

Javaで複数の入力ファイルを読み取るにはどうすればよいですか?複数の入力(いくつかのテキストドキュメント)を読み、用語ドキュメントマトリックスを作成する必要があります。
私はこのような1つのファイルを読むことができます:

  File file = new File("a.txt"); 
  int ch;
  StringBuffer strContent = new StringBuffer("");
  FileInputStream stream = null;  
  try
   {
     stream = new FileInputStream(file);   
     while( (ch = stream.read()) != -1)
        strContent.append((char)ch); 
      stream.close();   
   }

複数の入力ファイルを読み取るためのライブラリはありますか?または、ループしてすべてのファイルを読み取る必要がありますか?すべてのファイルはtxt.

4

2 に答える 2

4

複数の入力ファイルを読み取るライブラリはありますか?

私の知る限り、いいえ。

strContent複数のファイルをバッファ に読み込むように調整されたコードを次に示します。

  String names = new String[]{"a.txt", "b.txt", "c.txt"};
  StringBuffer strContent = new StringBuffer("");

  for (String name : names) {
      File file = new File(name); 
      int ch;
      FileInputStream stream = null;  
      try {
          stream = new FileInputStream(file);   
          while( (ch = stream.read()) != -1) {
              strContent.append((char) ch); 
          }
      } finally {
          stream.close();  
      } 
   }

ストリームの読み取りに問題がある場合にファイル記述子がリークしないように、close呼び出しをブロックに移動したことに注意してください。finally主な変更点は、単純にコードをループに入れて、いくつかのステートメントの順序を微調整することです。

于 2012-10-21T14:49:39.743 に答える
0

たとえば、ファイルストリームクラスを使用してファイルをループで読み取ることができます。たとえば、FileReader/BufferredFileReaderを次のように使用できます。

  String[] fileNames = new String[]{  "fileNameWithPath1", "fileNameWithPath2"...};

  for(String fileName: fileNames ) {  
      BufferredFileReader reader = 
                      new BufferredFileReader(new FileReader(fileName));
      System.ount.println("Start reading file : "+fileName);
      String line = null;
      while((line=reader.nextLine())!= null){
         System.out.println(line);
      }
      reader.close();
      System.ount.println("End reading file : "+fileName);
  }

ディレクトリ内のすべてのファイルを読み取りたい場合は、次を使用します。

  File directory = new File("directoryName");
  File[] filesInDir = directory.listFiles();//list all files in directory
  for(File file: filesInDir) {  
    if(!file.isDirectory()){ //read the file if not directory
      BufferredFileReader reader = 
                      new BufferredFileReader(new FileReader(file));
      System.ount.println("Start reading file : "+fileName);
      String line = null;
      while((line=reader.nextLine())!= null){
         System.out.println(line);
      }
      reader.close();
      System.ount.println("End reading file : "+fileName);
    }
  }
于 2012-10-21T14:41:55.623 に答える