PrintWriter提供了对输出内容的格式化。 a. 对于构造函数传入的OutputStream实例,最后会被封装成new BufferedWriter(new OutputStreamWriter(out) b.对于传入的File实例或者fileName,最后会被封装成new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName) c. 对于字符集的指定都是靠OutputStreamWriter完成的 e. 不会抛出异常,异常将在内部被捕获并标记,通过checkError()可以判断是否出现异常。 f. 因为使用BufferedWriter,所以输出的数据会放在缓存中,不会马上输出。 g. println()函数的实现是将输出分为两部分:输出字符;输出换行。通过synchronized保证原子性。