Writer或OutputStream?
我正在设计一个库,其中一个类应该能够将自己的内部转换为文本。 我应该使用哪个类: OutputStream
还是Writer
? 它们之间的关键区别是什么(在我的情况下)?
public interface Memento { void save(OutputStream stream); void save(Writer writer); }
哪一个?
OutputStream
是面向字节的流。 您编写的任何文本都必须使用某种编码(最常见的是ISO-8859-1或UTF-8)编码为字节。 Writer
是一个面向字符的流,可能会也可能不会将字符内部编码为字节,具体取决于它写入的内容。
编辑如果您正在设计一个库,那么如果您提供一个要写入文本的面向OutputStream
的接口,您实际上应该为客户端类提供控制要使用的编码的能力。
文本? Writer
。 它用于处理字符,荣誉编码。
流/字节数组? OutputStream
。 适用于原始字节,没有字符,编码,字符串等概念。