| « | November 2025 | » | | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 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类,提供了统一的处理方式。 |
|
|