My点评网 - 中国IT产业点评门户 | 将IT产业透明化! | 加入收藏 
MY(我)点评网
欢迎访客访问
[ 登录 | 注册:建论坛/写日志/说评论 ]
会员控制台 | 群组 | (BLOG)资讯 | 论坛
 
大众点评网
导行:
IDC 广告联盟 域名 建站CMS 网络游戏 投资网站 潜质域名 IT企业 电子商务 SEO/Windows7 Script 系统 程序 电脑 交流报 安全 论坛 游戏

java.io的设计理念

网络安全详细资料....
首页> 群组> IDC商群组> 网络安全论坛
返回>网络安全论坛 2010-1-7 15:50:46 来自:tang99 快速回复 添加新话题
主题内容: Java号称提供了强大的io控制,恩,实际上也确实挺强大的。但是,面对着那麽多的io类,开始的时候会有些头晕。
Java为了使用尽量少的类提供尽量强大的io功能,在io设计的时候采用了Decorator也就是中文中的装饰模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。没学过设计模式不要紧,从名称上就能感知1,2了。简单来说,就是包装,外挂,以使其除了本身的基本功能使外同时可以具有一些客户需要的特定功能。基本功能由本体Component实现。包装,外挂由Decorator来实现。下面是Decorator的UML图。

看不懂也没有关系,有一个比较简单的示意图。

Decorator1

Decorator2

Component

就是一层一层的包装,还是比较容易理解的吧?好了,先记住上面这个比较容易理解的图例吧。接下来我们先给Java的io归归类。

Java的io里面最基础的是InputStream,OutputStream,Reader,Writer,其中Stream读取的是单字节,它将数据读取到byte[]里面,它读取的是字符对应的acsii码。Reader,Writer读取的是双字节,它读取的是实际的字符,它可以设定采取什麽编码来进行读写,它提供了readLine()方法。

好了,基础的两大阵营出来了,读取ascii码的Stream与读取实际字符的XXXer。

然后是一些前缀,常用的有Buffered,File,那麽前缀后缀连接起来,这个io类的功能就出来了。BufferedInputStream就是提供缓冲功能支持的读取ascii码的类,FileInputStream就是从文件读取ascii码的类,那麽谁是实体,谁是装饰,很明显。

我们头脑里要有一个最基础的概念,就是总要有一个什麽类来负责跟具体的标准输入输出(比如文件,比如控制台)打交道,实现这个最基本的跟便准输入输出打交道的类就是Component,再此之上,我们需要的功能就要考虑是否有对应的Decorator帮忙实现,比如缓冲功能。然后,就很简单了。

BufferedInputStream bis = new BufferedInputStream(new FileInputStream());

一层一层的包装,包装多少层随便你,我们要做的就是确认我要跟文件打交道,那麽FileInputStream是最基本的,需要被包装的,其他需要的功能,去查找那各类实现了这个功能,然后包装一下就OK了。

另外还有一个事情是我们需要知道的。Stream跟XXXer两大阵营,他们各自提供各自的功能,但是他们可能需要沟通,这里Java的io提供了StreamXXXer类,比如

new InputStreamReader(System.in); 这样就可以直接从控制台读取字符或者输入行内容了。

文章来源 51-pass
 回应:2010-1-7 | 用户:kidding | 你能评论 IP:113.94.*.* | 1楼
  Lililala2 转贴阿六仔网站的无聊文章
kobe 有吗?  

 最新相关内容 10秒,快速注册会员建论坛/写日志/说评论
·PDF 转 TIF 程序库
·datagridview里的动态combobo
·如何从控制项传参数到Form
·发生了执行阶段错误1004 请看一下
·如何读取*.csv 文件资料
·webbrowser 中文输入问题
·马达转速多段控制
·服务器被访问的速度由哪些因素决定?
·ACCESS中的栏位如果有"-&qu;
  你的回应... [仅对登录会员开放,请文明参与,注册会员能写日志、说评论、建论坛自己当版主]
  回应一下:java.io的设计理念
 
  请勿发广告或垃圾信息,请为提高内容质量做出贡献
  [Ctrl+Enter 快速回复]

返回网络安全论坛


来自>>IDC商群组

简介:这是一个以网络技术交流为中心的论坛,以电脑技术、网络安全等为话题.
论坛生日:2009/4/29建立
主题:java.io的设计理念
创始人版主:admin查看>>
更多分类 >返网络安全论坛首页
最新热门推荐帖子....
北京2010年服务器托管特价促销 [banxinwang]
求助HP Presario CQ40-419AX之驱动-XP [zou568568]
NOKIAN97全配的问题 [hengtongit]
如何在文章与回覆间加入google adsens [hoongyechem]
"开口中"的program [fox_wt]
$_POST抓不到值 [ehu120]
伊莉讨论区 都没办法成为小学生 [jlxg11]
RAM DDR3 与 DDR2 对应问题 [yangxiao]
Google Calender API 删除的疑问 [lifait]
PHP的FPDF一问 [sheryllili]
有关JTextArea.copy()的功能? [a56321]
为什么我的obj档无法显示出来 [soloshe]
FACEBOOK 餐城的问题 [妹妹 531]
电脑会自动关机 [devildescendant]
急 [音乐播放器] ! ! ! [fsfAsuyt44]
VB2005存文件问题 [td888]
佰网数据com域名35元/cn域名5元 [湖北佰网]
佰网数据服务器租用单线600元/双线800元 [湖北佰网]
虚拟主机出现500错误提示是怎么回事,如何解决? [啊话123456789]
艺术类高考考题资料 [fuxinjiaoyu]

  关于我们 需要帮助 广告服务 合作伙伴 中国IT产业大众点评门户
CopyRight 2008 © My点评网 www.MyDianPing.com
粤ICP备08105915号
  My点评网简介
用户协议 隐私声明
联系方式 建议/反馈
常见问题
忘记了密码
联系我们的客服人员
联系方式
广告投放
网站地图(SiteMap)
网站合作
投资/融资
友情链接/战略伙伴