Java Web之I/O学习篇

    Java的I/O接口在包java.io下,主要包括以下几组,前两组主要是传输数据的数据格式,后两组主要是传输数据的方式。:

  1. 基于字节操作的I/O接口:InputStream和OutputStream。
  2. 基于字符操作的I/O接口:Writer和Reader。
  3. 基于磁盘操作的I/O接口:File。
  4. 基于网络操作的I/O接口:Socket。

    无论是网络还是磁盘,最小的存储单元是字节,而不是字符。所以I/O操作的都是字节。出现字符操作只是方便我们平时的操作,因为平时的数据都是以字符的形式出现的。从字符到字节必须经过编码的转换。

 

磁盘I/O工作机制:

  1. 标准访问文件的方式:程序调用read()接口,操作系统检查内存中是否已经缓存数据,如果缓存了就直接返回,没有,则从磁盘中读取,然后写入缓存文件中。调用write()接口,则把数据从用户空间地址复制到内存地址的缓存中。这样对于程序来说已经完成了,什么时候再写入到磁盘中由操作系统决定。也可以显式的调用sync同步命令。
  2. 直接I/O的方式:程序直接访问磁盘数据,不经过操作系统内核数据缓冲区。
  3. 同步访问文件的方式。
  4. 异步访问文件的方式。
  5. 内存映射的方式。

 

 

 

 

转载于:https://my.oschina.net/u/2319418/blog/3098991

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值