中易网

string流和istream流的区别

答案:1  悬赏:20  
解决时间 2021-01-19 09:04
string流和istream流的区别
最佳答案
比如用于网络间通信,发送消息时,可用PrintStream 也可用 PrintWriter
eg:
Socket client;
PrintStream output = new PrintStream(client.getOutputStream());
output.println("aaa");
output.flush();
把上例中的 PrintStream 换成 PrintWriter效果是一样的。Java I/O流分为两类,字节流和字符流。字节流是指InputStream/OutputStream及其子类,字符流是指Reader/Writer及其子类。这两类I/O流的class hierarchy基本上是对等的,InputStreamReader/OutputStreamWriter是InputStream/OutputStream和Reader/Writer之间的桥梁。PrintStream是OutputStream的子类,PrintWriter是Writer的子类,两者处于对等的位置上,所以它们的API是非常相似的。PrintWriter实现了PritnStream的所有print方法。对于PrintStream,所有println方法都在内部调用相应的print方法,比如println(char x)的方法体就是调用print(x);再写入一个平台相关的换行符。PrintStream构建时会在内部new一个BufferedWriter,所有print方法都在内部调用这个Writer的write方法(write(String)或write(char[]))――对于print(char[]),直接调用write(char[]);对于其他的print方法,先用String.valueOf获得参数的字符串表示,然后调用write(String)。
对于PrintWriter,所有println方法也都在内部调用print方法,print方法调用write方法。传入OutputStream时,PrintWriter会在内部构造一个BufferedWriter;而传入Writer时,PrintStream内部直接使用该Writer,此时PrintWriter是否进行了缓冲全看该Writer。
但是,PrintStream是字节流,它有处理raw byte的方法,write(int)和write(byte[],int,int);PrintWriter是字符流,它没有处理raw byte的方法。PrintStream和PrintWriter的auto flushing机制有点不同,前者在输出byte数组、调用println方法、输出换行符或者byte值10(即\n)时自动调用flush方法,后者仅在调用println方法时发生auto flushing。System.out是PrintStream。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
肯高MC UV 和 耐斯 MC UV 哪个好?
AUTO CAD2010不依靠快捷键创建永久块的方法
室内消火栓必须满足5L/S秒吗
大家谁知道银点支付的蓝牙POS机咋样?有用过
江苏省有哪些自主汽车品牌
罗技G500,G502,G500S哪个性能更好?
我想追求五十岁女人,用什么方法呢?
对宇宙 天文这方面东西感兴趣,想学天文学,
科幻故事的写法和题材
魔兽世界考莫克是黑暗之门里的吗
准备要去当城管了,大家说说城管好当吗
被誉为活着的烈士济南战役老战士是谁
讨论古人命理为何不断流年
淘宝怎么开通全球购
秘制黑胡椒猪排怎么做好吃
推荐资讯
带分数乘法怎么做
虽说你我有缘相牵,也有太多的无奈和依恋 啥
乙酰苯胺、苯乙酮、氯苯、苯的硝化难易
魔魔匠怎么去啊,我要去那办事
曹操传 最终版 我走的红线 打完定军山之战过
怎么改变swiper2点击按钮之后就不能自动播放
冬虫夏虫怎样吃最补身体?怎样识别真假勒?
金龙鱼转基因菜籽油能吃吗
打胎后如何超度
请问我今年都已经59岁了,从2OO2年就以单位上
因为小事分手后,又和好,发qq说说该说什么?
求我让最想被拥抱的男人第一名给威胁了drama
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?