门户网站系统开发,微信怎么制作微电影网站,wordpress 手机号登录,外贸购物网站模板转载自 Java IO: Reader和Writer作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com)
Reader
原文链接
Reader是Java IO中所有Reader的基类。Reader与InputStream类似#xff0c;不同点在于#xff0c;Reader基于字符而非基于字节。换句话说#xff0c;Reader用于读取…转载自 Java IO: Reader和Writer作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com)
Reader
原文链接
Reader是Java IO中所有Reader的基类。Reader与InputStream类似不同点在于Reader基于字符而非基于字节。换句话说Reader用于读取文本而InputStream用于读取原始字节。请记住Java内部使用UTF8编码表示字符串。输入流中一个字节可能并不等同于一个UTF8字符。如果你从输入流中以字节为单位读取UTF8编码的文本并且尝试将读取到的字节转换成字符你可能会得不到预期的结果。
read()方法返回一个包含了读取到的字符内容的int类型变量(译者注0~65535)。如果方法返回-1表明Reader中已经没有剩余可读取字符此时可以关闭Reader。-1是一个int类型不是byte或者char类型这是不一样的。
你通常会使用Reader的子类而不会直接使用Reader。Reader的子类包括InputStreamReaderCharArrayReaderFileReader等等。可以查看Java IO概述浏览完整的Reader表格。
Reader通常与文件、字符数组、网络等数据源相关联Java IO概述中同样说明了这一点。
Writer
原文链接
Writer是Java IO中所有Writer的基类。与Reader和InputStream的关系类似Writer基于字符而非基于字节Writer用于写入文本OutputStream用于写入字节。
同样你最好使用Writer的子类不需要直接使用Writer因为子类的实现更加明确更能表现你的意图。常用子类包括OutputStreamWriterCharArrayWriterFileWriter等。
Writer的write(int c)方法会将传入参数的低16位写入到Writer中忽略高16位的数据。