我真的很困惑。 我已经看到了很多关于如何在Java中读取文件的实现,而我阅读得越多,对我来说就越少。Java - 初始化BufferedReader对象路径对象
正如我注意到的,读取文件的首选方法是使用BufferedReader
而不是Scanner
。 但是,我看到的例子,如:
Scanner s = new Scanner(new BufferedReader(...);
而不只是:
Scanner s = new Scanner(new File("foo.txt"));
会是什么理由来初始化BufferedReader
一个Scanner
? 这样做有什么好处吗?
现在,我发现更令人困惑的是,无论在哪里看,都有使用Path
Object而不是File
的建议。 但是,我发现没有优雅的方式来初始化BufferedReader
与Path
对象,因为BufferedReader
& FileReader
不能接受Path
。
当然有办法,只是这样做:
Path path = Paths.get("foo.txt");
BufferedReader br = new BufferedReader(new FileReader(path.toFile()));
但是,貌似很多乱七八糟的。
我就BufferedReader
的问题是:
- 应我甚至使用
BufferedReader
? FileReader
的用途是什么?为什么我不能只用String
或Path
初始化BufferedReader
?
是的,你应该使用BufferedReader。对另一个问题的答案是 - “仅仅因为你可以并不意味着你应该适用于第一个问题”。 – Shark
@Shark我不明白 - 你说我应该,但后来建议我不应该,这是哪一个? –
你应该。至于“为什么我不能用一个字符串或路径初始化BufferedReader” - 在编程中有很多解决方法和快捷方式,它们似乎使事情变得更容易,因为它们将不必要的,可能很复杂的部分截掉了。但仅仅因为你可以不意味着你应该。至于你的最后一个问题 - 为什么不能用字符串初始化,这对于这个类的作者来说是个好问题。最后,请再阅读一些内容,并根据情况作出明智的决定,是否应该在特定情况下进行。 – Shark