本站首页    管理页面    写新日志    退出


«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:
日志总数:14
评论数量:24
留言数量:0
访问次数:54906
建立时间:2007年12月28日




[Lucene]FS包实现
文章收藏,  软件技术

bg1011 发表于 2007/12/28 22:12:40

 在此包中,最重要的是FileSystem抽象类。它定义了文件系统中涉及的一些基本操作,如:create,rename,delete...另外包括一些分布式文件系统具有的操作:copyFromLocalFile, copyToLocalFile,...类似于Ftp中put和get操作。 LocalFileSystem和DistributedFileSystem,继承于此类,分别实现了本地文件系统和分布式文件系统。了解了最重要的类之后,看一看它的一系列stream类:    * FSOutputStream 在原有OutputStream基础之上添加了获得文件指针偏移量的getPos方法。可以通过FileSystem的 createRaw获得它的实例。这里存在一个疑问,这个扩展的getPos方法在fs包中没有被使用。如果在其余包中同样没有被使用,那么扩展就显得多余。    * FSInputStream在原有InputStream基础之上同样添加了getPos方法,同时可以通过 seek方法定位指定的偏移量处。可以通过 FileSystem的openRaw获得它的实例。新添加的getPos和seek方法在FSDataInputStream类中被使用。    * FSDataOutputStream继承于DataOutputStream,包装了FSOutputStream。与DataOutputStream相比,不同之处在于:   1. 添加了getPos方法,它是利用PositonCache记录当前的position   2. 通过Buffer内类对输出进行缓存处理,改进性能   3. 可以构建具有checksum的流,保证数据的正确性    * FSDataInputStram继承于DataInputStream,包装了FSInputStream。与DataInputStream相比,不同之处在于:   1. 添加了seek和getPos方法   2. 通过Buffer内类对输入进行缓存处理,改进性能   3. 可以构建具有checksum的流,保证数据的正确性另外,为了屏蔽Windows和Unix、Linux在路径处理上存在的差异,实现了Path类,提供了统一的处理方式。


阅读全文(3422) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.016 second(s), page refreshed 144817221 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号