日期:2011-03-22 16:17:00 来源:本站整理
本身的缺陷:RandomAccessFile[Java编程]
本文“本身的缺陷:RandomAccessFile[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
RandomAccessFile用于包含了已知长度记录的文件,以便我们能用seek()从一条记录移至另一条;然后读取或改正那些记录.各记录的长度并不一定相同;只要知道它们有多大以及置于文件何处便可.
首先,我们有点难以相信RandomAccessFile不属于InputStream大概OutputStream分层构造的一部份.除了刚巧实现了DataInput以及DataOutput(这二者亦由DataInputStream和DataOutputStream实现)接口之外,它们与那些分层构造并没有什么关系.它乃至没有效到现有InputStream或OutputStream类的功效——采取的是一个完好不相关的类.该类属于全新的计划,含有自己的全部(大大都为固有)办法.之所以要这样做,是因为RandomAccessFile拥有与其他IO范例完好差别的行为,因为我们可在一个文件里向前或向后移动.不管在哪类情形下,它都是独立运作的,作为Object的一个“直接担当人”利用.
从根本上说,RandomAccessFile近似DataInputStream和DataOutputStream的结合利用.此中,getFilePointer()用于理解当前在文件的什么地方,seek()用于移至文件内的一个新地址,而length()用于判断文件的最大长度.此外,构建器要求利用另一个自变量(与C的fopen()完好一样),指出自己只是随机读("r"),还是读写兼施("rw").这里没有供应对“只写文件”的支持.也就是说,假定是从DataInputStream担当的,那么RandomAccessFile也有大概能很好地工作.
还有更难对付的.很简单想象我们有时要在其他范例的数据流中搜索,比方一个ByteArrayInputStream,但搜索办法只有RandomAccessFile才会供应.此后者只能针对文件才能操作,不能针对数据流操作.此时,BufferedInputStream确切答应我们标志一个位置(利用mark(),它的值包容于单个内部变量中),并用reset()重设那个位置.但这些做法都存在限制,并非分外有效.
以上是“本身的缺陷:RandomAccessFile[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论