java IO接口


======================================================
注:本文源代码点此下载
======================================================

什么是io ?

io(input/output)是计算机输出/输出的接口。java的核心库java.io提供了全面的io接口,包括:文件读写,标准设备输出等 等。java中io是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。此外,java也对块传输提供支持,在核心库 java.nio中采用的便是块io。关于nio我们在后面还有专门的讨论。流io的好处是简单易用,缺点是效率较低。块io效率很高,但编程比较复 杂。

java io模型

java的io模型设计非常优秀,它使用decorator模式,按功能划分stream,您可以动态装配这些stream,以便获得您需要的功能。例 如,您需要一个具有缓冲的文件输入流,则应当组合使用fileinputstream和bufferedinputstream。

java的io体系分input/output和reader/writer两类,区别在于reader/writer在读写文本时能自动转换内码。基本上,所有的io类都是配对的,即有xxxinput就有一个对应的xxxoutput。

java io教程

如果您对decorator模式非常了解,就能轻易地看出java的io类结构:

根接口是inputstream/outputstream,充当数据源的io类有

fileinputstream/fileoutputstream,bytearrayinputstream/bytearrayoutputstream等,

充当装饰功能的io类有bufferedinputstream/bufferedoutputstream,datainputstream /dataoutputstream等,它们都是继承装饰接口filterinputstream/filteroutputstream。使用io时,

首先创建一个数据源io,然后根据需要的功能创建装饰类io,其构造函数的参数为已创建的数据源io。我们以创建一个具有缓冲的文件输入流为例,假定需要 从磁盘读取文件“c:\log.txt”:

// 创建一个fileinputstream: wedding veil

fileinputstream fileinput = new fileinputstream("c:\\log.txt");

// 创建一个bufferedinputstream: bufferedinputstream bufferedinput = new

bufferedinputstream(fileinput);

// 现在得到的bufferedinput即是具有缓冲的文件输入流

或者进一步简写如下:

inputstream input = new bufferedinputstream( new

fileinputstream("c:\\log.txt\silk flowers"));

// 现在得到的input即是具有缓冲的文件输入流

在您对java的io有了总体了解后,我们推荐您看看教程introduction to java i/o和i/o: reading and writing。

java nio编程

nio提供了对块io的支持,使用块io的好处是效率更高,而且java的nio将直接调用操作系统提供的许多高级io接口,支持块传输,读写锁定,异步 io等功能,效率非常高。nio的编程模型是通道和缓冲区,推荐您阅读getting started

with new i/o(中文)。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值