OutputStreamWriter是Writer的最重要的具体子类。OutputStreamWriter会从Java程序接收字符。它根据指定的编码方式将这些字符转换为字节,并写入底层输出流。它的构造函数指定了要写入的输出流和使用的编码方式:
public OutputStreamWriter(OutputStream out,String encoding) throws UnsupportedEncodingException
JDK中包括一个SUN的native2ascii工具,其相关文档中列出了所有合法的编码方式。如果没有指定编码方式,就使用平台的默认编码方式。2013年,Mac上的默认编码方式是UTF-8,Linux上也大多如此。默认字符集可能会在出乎意料的时候导致意外的问题。如果能明确地指定字符集,这往往比让Java为你选择一个字符集要好。
除了构造函数,OutputStreamWriter只有通常的Writer方法,还有一个返回对象编码方式的方法:
public String getEncoding()