System.in的包装方式

喜欢踢足球的老罗 2008-10-11 11:47:46
你好!
我想问一下对于System.in类的包装方式除了以下方式处还有其它方式吗?
new BufferedReader(new InputStreamReader(System.in));
thank you in advance
...全文
307 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangyangweiyue 2008-10-18
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 bao110908 的回复:]
还可以去看看设计模式中的装饰器模式
[/Quote]

经典回答。
以梦为马 2008-10-18
  • 打赏
  • 举报
回复
new BufferedReader(new InputStreamReader(System.in));

System.in 是一个字节输入流(键盘输入是字节流,别当成是字符流,System.out屏幕输出也一样);

InputStreamReader是字节流通向字符流的桥梁,包装System.in后就可以将字节流转换成字符流(还可指定字符集);

BufferedReader是具有读写缓存的包装流,对上述转换成的字符流进行再包装以实现IO缓存,更优化性能。

这就是这里套3层的原因。

love_wbq 2008-10-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 java2000_net 的回复:]
System.in 是 InputStream,任何对其的的包装都是允许的。

比如
Scanner
BufferedInputStream
[/Quote]


学习了 明白了 这个人说的真棒!
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 justinavril 的回复:]
自己找个书,都有介绍io的吧,把代码看看,然后读读文件,再写入文件。
[/Quote]
大哥..看来你不明白..我想要的是怎样的解释..
读文件..写文件..这对我来说没难度..
zhentuxiaohao163 2008-10-11
  • 打赏
  • 举报
回复
学习
ZangXT 2008-10-11
  • 打赏
  • 举报
回复
学习。
justinavril 2008-10-11
  • 打赏
  • 举报
回复
自己找个书,都有介绍io的吧,把代码看看,然后读读文件,再写入文件。
  • 打赏
  • 举报
回复
再提问..如何结合DataInputStream与System.in对象一起使用(正常使用),如何包装,需要再结合那些流?
老紫竹 2008-10-11
  • 打赏
  • 举报
回复
System.in 是 InputStream,任何对其的的包装都是允许的。

比如
Scanner
BufferedInputStream
zhengtuxinqu163 2008-10-11
  • 打赏
  • 举报
回复
一起学习
dzh523 2008-10-11
  • 打赏
  • 举报
回复
陪你一起等专家作答!
  • 打赏
  • 举报
回复
比如这样的包装方式(可能用包装一词不对吧)
new DataInputStream(new ByteArrayInputStream(sBytes));
new DataOutputStream(new ByteArrayOutputStream());
这种方式我有编码的时候常用
但如果这样呢?
new DataInputStream(System.in);
是不是一无用处..的作法..
  • 打赏
  • 举报
回复
还有一个问题是,我想细一点的学习java的io操作 ,然后再学习nio操作,能否给些学习上的意见.
awusoft 2008-10-11
  • 打赏
  • 举报
回复
不太明白问题...System是一个类,然后in是它里的一个成员.

class System
{
xxx in;
}
pengpeng409 2008-10-11
  • 打赏
  • 举报
回复
呵呵!学习!
qiandongbo 2008-10-11
  • 打赏
  • 举报
回复
package Test;
import java.io.*;
public class Test1
{
public static void main(String[] args)
{
DataInputStream in=new DataInputStream(System.in);
try
{
while(true)
{
System.out.print((char)(in.read()));
}
}
catch(Exception e)
{
try{in.close();}catch(Exception ie){}
}
}
}
感觉写IO就象堆积木,按照一定规则就能随意拼凑的~都可能对,但并不都是最合理的
  • 打赏
  • 举报
回复
还可以去看看设计模式中的装饰器模式
qiandongbo 2008-10-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 SCHOLAR_II 的回复:]
比如这样的包装方式(可能用包装一词不对吧)
new DataInputStream(new ByteArrayInputStream(sBytes));
new DataOutputStream(new ByteArrayOutputStream());
这种方式我有编码的时候常用
但如果这样呢?
new DataInputStream(System.in);
是不是一无用处..的作法..
[/Quote]
个人认为你还是要去看看API,了解下每个IO类
qiandongbo 2008-10-11
  • 打赏
  • 举报
回复
看了半天没看懂,个人理解System.in既为一个InputStream,哪能放这个接口,哪就有System.in
的位置~搬张凳子过来学习~
liujiaqwer 2008-10-11
  • 打赏
  • 举报
回复
学习
加载更多回复(3)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧