有很多类扩展了 java.io.Writer 和 java.io.Reader。
在某些情况下您应该使用一个而不是另一个?它们每个的总体用处是什么(为什么有这么多)?
他们有不同的“性能”属性吗?他们都只是从流中写入/读取 - 不是吗?
有谁知道一篇文章,它会给我一个例子,说明你会在哪里使用一个。
同样的问题也适用于处理实际文件。似乎有不止一种方法可以打开要读取/写入的文件流。
谢谢。
读者的名字对用例说了很多。
FileReader / StringReader / CharArrayReader / InputStreamReader 有不同的实现来读取文件、字符串、CharArrays 或 InputStream。用法取决于您的来源。
LineNumberReader / PushbackReader / BufferedReader 不能“独立”工作,您可以将它们与另一个源阅读器结合使用。例如new BufferedReader( new FileReader(file) );
此阅读器为您提供了针对您可能想要做的特殊情况的方法。BufferedReader
逐行读取,或 LineNumberReader 获取行号。
PipedReader
结合PipedWriter
. ...
...对于特殊情况,您可以使用 Reader 和 Writer 构建链,例如装饰器模式。
这是他们选择的特定设计模式。你需要哪门课取决于“你需要做什么”。如果您想从文件中读取,那么您可能需要一个FileReader
. 对于大多数这些类,您可以将一个封装到另一个中以获得您需要的功能。
这是我不久前提出的一个很好的问题Writer
,关于使用正确的课程。