/dev/null

(◞‸◟)

今時なJavaでテキストファイルを読みこむ方法

はいどうも、今回は超当たり前の記事を書く。

Javaです。

テキストファイル全体を読み込みたい時ってあるじゃないですかっていう話。

一つのStringにしてくれよ、みたいな。

で、ググるとだいたいこんなのでる。

            File file = new File("C:/test.txt");
            
            BufferedReader br = new BufferedReader(new FileReader(file));
            StringBuilder builer;
            String line;

            while ((line = br.readLine()) != null) {
                builder.append(line);
            }

ちなみにメンドイので例外処理は抜いてる。

なんですかこれは

ファイル1個読むのにどんだけ必要なんだよ。

だからJavaは駄目なんだ、IOExceptionがチェック例外だしさらに憤死だ。

もっとないのか〜〜〜〜!となりました。

after

String text = new Scanner(new File("C:/test.txt")).useDelimiter("\\Z").next();

一行になりました(IOExceptionは出るからそれはなんとかしろ

スキャナークラスにFile食わせて区切り文字を\zにすることでファイルの終端まで読ませてnext()で中身を返させるというやつ。

まぁこれでファイル全体読み込めない例外があって読ませるinputstreamがSequenceInputStreamクラスの時らしいんだけど、まぁそんときあhasNext()辺りでチェックしろというやつ。

ちなみにApacheCommonsに便利なreadFileToStringってのがありますが、外部ライブラリにだけ頼るってのはよくありません(老害

http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html#readFileToString(java.io.File, java.nio.charset.Charset)

まぁ、もっといいやり方あったらおしえてくんなまし