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"

基于SpringBoot网上超市,系统包含两种角色:用户、管理员,系统分为前台和后台两大模块,主要功能如下: 1 管理员功能实现 商品信息管理 管理员可以通过提交商品名称查询商品,并查看该商品的用户评论信息。 用户管理 管理员通过提交用户名来获取用户资料,对有异常情况的用户信息进行修改,并可以详细查看用户资料。 商品评价管理 管理员审核用户对商品的评价,经过审核的评价才会显示,并可以统计商品评价信息。 已支付订单 管理员查看已支付的订单,并逐个进行订单发货。 2 用户功能实现 商品信息 用户可以收藏、立即购买商品,或对商品进行评价,同时将商品添加到购物车。 购物车 用户可以直接下单购买购物车中的商品,或删除购物车中的商品。 确认下单 用户选择地址,查看支付金额信息,以确认订单之前的所有细节。 已支付订单 用户查看已支付的订单,若对购买商品产生后悔,可以申请退款。 二、项目技术 开发语言:Java 数据库:MySQL 项目管理工具:Maven Web应用服务器:Tomcat 前端技术:Vue、 后端技术:SpringBoot框架 三、运行环境 操作系统:Windows、macOS都可以 JDK版本:JDK1.8以上版本都可以 开发工具:IDEA、Ecplise都可以 数据库: MySQL 5.7/8.0版本均可 Tomcat:7.x、8.x、9.x版本均可 Maven:任意版本都可以
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值