Difference between PrintWriter and PrintStream

 Most programs should use readers and writers to read and write information. This is because they both can handle any character in the Unicode character set (while the byte streams are limited to ISO-Latin-1 8-bit bytes).

Programs should use the byte streams, descendants of InputStream and OutputStream, to read and write 8-bit bytes. These streams are typically used to read and write binary data such as images and sounds.

These differences are highlighted by the presence or absence of certain kinds of classes in the API and sometimes by the methods provided. For example, there are classes for ByteArray, Data, and Object streams. These don't exist in the Reader/Writer hierarchy. But there is the CharArrayReader and CharArrayWriter. This underscores that the intent of the streams is for processing 8-byte binary data and readers/writers for processing 16-bit character data.

Another example of this is that Reader and InputStream define similar APIs but for different data types . For example, Reader contains these methods for reading characters and arrays of characters:
    int read()
    int read(char cbuf[])
    int read(char cbuf[], int offset, int length)

InputStream defines the same methods but for reading bytes and arrays of bytes:
    int read()
    int read(byte cbuf[])
    int read(byte cbuf[], int offset, int length)

There are also two bridge classes, InputStreamReader and OutputStreamWriter, so that readers and writers can be used when appropriate to read or write character data (information) to a stream. There are no equivalent bridge classes for "wrapping" a reader or writer with a stream.

Finally, FileReader and FileWriter are rather special cases. They read and write 16-bit characters. However, most native file systems are based on 8-bit bytes. These classes encode the characters as they operate according to the default character-encoding scheme as specified by the System property "file.encoding". To specify an encoding other than the default, you construct a FileOutputStream and wrap it with an OutputStreamWriter which allows you to specify the encoding.

 

got from "http://www.experts-exchange.com/Programming/Languages/Java/Q_20029535.html"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值