私は本当に混乱しています。 私はJavaでファイルを読み込む方法について多くの実装を見てきましたが、私が読んだほどそれが意味をなさないほどです。Java - BufferedReaderオブジェクトパスオブジェクトを初期化する
私が気づいたように、ファイルを読み取るにはBufferedReader
をScanner
以上にするのが好ましい方法です。
Scanner s = new Scanner(new BufferedReader(...);
の代わりにちょうど: しかし、私のような例を見てきました
Scanner s = new Scanner(new File("foo.txt"));
BufferedReader
でScanner
を初期化する理由は何でしょうか? このようにする利点はありますか?
ここで、私はもっと紛らわしいと思いますが、どこでも見て、File
の代わりにPath
オブジェクトを使用するための提案があります。 しかし、BufferedReader
をPath
オブジェクトで初期化するエレガントな方法が見つかりませんでした。BufferedReader
& FileReader
はPath
を受け入れることができません。
はもちろん、単にような何か方法があります:
Path path = Paths.get("foo.txt");
BufferedReader br = new BufferedReader(new FileReader(path.toFile()));
をしかし、それは混乱の多くのように見えます。 BufferedReader
に関する
私の質問は以下のとおりです。
- 私も
BufferedReader
を使用する必要がありますか? FileReader
の目的は何ですか?なぜちょうどBufferedReader
をString
またはPath
に初期化できませんか?
はい、BufferedReaderを使用する必要があります。もう一つの質問に対する答えは、「あなたができることができるからといって、最初のものにも当てはまるべきではない」ということです。 – Shark
@ Shark私は理解できません - 私はすべきだと言いましたが、私はすべきではない、と提案しました。 –
する必要があります。「なぜ文字列やパスでBufferedReaderを初期化できないのですか?」というように、不必要な、おそらく複雑な部分を切り捨てるので、作業を簡単にするような回避策やショートカットがたくさんあります。しかし、あなたができるからといって、あなたがすべきことではありません。あなたの最後の質問について - 文字列で初期化できない理由は、クラスの作成者にとっては良い質問です。最終的には、もう少し読んで、具体的なケースですべきかどうかの情報に基づいた決定を下してください。 – Shark