- ベストアンサー
javaで大量のファイルを読み込む方法
javaプログラミングについて質問です。 例えば、a1.txt~a100.txtの100個のテキストファイルがある として、これをループか何かを使って順番に読み込みたいのですが、 そのような方法はあるのでしょうか。 // ファイル入力ストリームを取得 BufferedReader br = new BufferedReader(new FileReader("a1.txt")); BufferedReader br2 = new BufferedReader(new FileReader("a2.txt")); BufferedReader br3 = new BufferedReader(new FileReader("a3.txt")); ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ BufferedReader br100 = new BufferedReader(new FileReader("a100.txt")); という風に書くのが面倒に思っています。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
順番を無視していいのと同じディレクトリの中なら String dirString = "C:/data"; File dir = new File(dirString); File files[] = dir.listFiles(); for (int i = 0; i < files.length; i++) { if (!files[i].isDirectory()) { BufferedReader br = new BufferedReader(new FileReader(files[i].getName())); // 何かの処理 // ..... } } と、言った感じですかねぇ。
その他の回答 (2)
- Gishi
- ベストアンサー率57% (11/19)
ファイル名に "a番号.txt" のような一貫性があるなら、 ファイル名を配列に入れるよりも、 下のコードのようにしたほうがよいでしょう。 for (int i = 1; i <= 100; i++) { String name = "a" + i + ".txt"; BufferedReader br = new BufferedReader(new FileReader(name)); // ... ファイルを読み込む処理 br.close(); } (あまり賢いやり方ではないと思いますが) 100個のファイルを同時に開く必要があるなら、 #1さんの書いたように、 BufferedReader の配列を作ればいいと思います。
お礼
この方法が知りたかったんです。ありがとうございます!
- rinkun
- ベストアンサー率44% (706/1571)
百個のファイルを同時に開いておく必要はありますか? あるのだったら。 String[] names = { "a1.txt", "a2.txt", ... "a100.txt" }; BufferedReader[] br = new BufferedReader[100]; for(int i=0; i<100; i++) { br[i] = new BufferedReader(new FileReader(names[i])); } // 処理 for(int i=0; i<100; i++) { br[i].close(); } ただはっきり言って、100もファイルを開くと重いのでお勧めしません。 一つずつで良ければ for(int i=0; i<100; i++) { BufferedReader br = new BufferedReader(new FileReader(names[i])); // 処理 br.close(); } これで良いでしょう。
お礼
なるほど!参考にさせていただきます!
お礼
ディレクトリ以下で取り出すこともできるんですね! 参考にさせていただきます!