3

有很多类扩展了 java.io.Writer 和 java.io.Reader。

在某些情况下您应该使用一个而不是另一个?它们每个的总体用处是什么(为什么有这么多)?

他们有不同的“性能”属性吗?他们都只是从流中写入/读取 - 不是吗?

有谁知道一篇文章,它会给我一个例子,说明你会在哪里使用一个。

同样的问题也适用于处理实际文件。似乎有不止一种方法可以打开要读取/写入的文件流。

谢谢。

4

2 回答 2

4

读者的名字对用例说了很多。

FileReader / StringReader / CharArrayReader / InputStreamReader 有不同的实现来读取文件、字符串、CharArrays 或 InputStream。用法取决于您的来源。

LineNumberReader / PushbackReader / BufferedReader 不能“独立”工作,您可以将它们与另一个源阅读器结合使用。例如new BufferedReader( new FileReader(file) );

此阅读器为您提供了针对您可能想要做的特殊情况的方法。BufferedReader逐行读取,或 LineNumberReader 获取行号。

PipedReader结合PipedWriter. ...

...对于特殊情况,您可以使用 Reader 和 Writer 构建链,例如装饰器模式。

于 2011-05-16T11:24:59.343 回答
1

这是他们选择的特定设计模式。你需要哪门课取决于“你需要做什么”。如果您想从文件中读取,那么您可能需要一个FileReader. 对于大多数这些类,您可以将一个封装到另一个中以获得您需要的功能。

这是我不久前提出的一个很好的问题Writer,关于使用正确的课程。

于 2011-05-16T11:12:42.220 回答