質問: 最近Javaで開発を始めました。 複数のファイルが入っているフォルダがあります。 このフォルダから1ファイルずつ開き中身をバッファか配列に読み込むコードを書きたいです。 このとき使うべきクラスとメソッドは何でしょうか。 できるだけ簡単に書きたいです。 ネットで調べてみると、 1Fileクラスのオブジェクトを作り、フォルダパスを渡す 2FileInputStreamでファイルを開く 3BufferedReaderでバッファに読み込む という流れなのかなと思っています。 けれど、試しにコードを書いてみると、FileInputStreamからBufferedReaderに変換できないとのコンパイルエラーがでます。 どのようにコードを書くとよいでしょうか?
回答: ### 行単位で読み込む簡単なコード ファイルが文字セットUTF-8の「テキストファイル」であり、1行毎に読み込む例です。 ``` List lines = Files.readAllLines(Paths.get("./sample.txt"), StandardCharsets.UTF_8); ``` ### 一括して読み込む簡単なコード ファイルが文字セットUTF-8の「テキストファイル」であり、ファイルまとめて読み込む例です。 ``` byte[] bytes = Files.readAllBytes(Paths.get("./sample.txt")); String all = new String(bytes, StandardCharsets.UTF_8); ``` ### 複数のファイルの取得方法 ディレクトリを除外したファイルの一覧を出力する例です。 ``` try(Stream paths = Files.list(Paths.get("d:/"))){ paths.filter(path->path.toFile().isFile()).forEach(System.out::println); } catch (IOException ex) { ex.printStackTrace(System.err); } ```