首先上代码:
1.lucene里的代码
if (file.canRead()) {
if (file.isDirectory()) {
String[] files = file.list();
// an IO error could occur
if (files != null) {
for (int i = 0; i < files.length; i++) {
indexDocs(writer, new File(file, files[i]));
}
}
} else {
System.out.println("adding " + file);
try {
writer.addDocument(FileDocument.Document(file));
}
// at least on windows, some temporary files raise this
// exception with an "access denied" message
// checking if the file can be read doesn't help
catch (FileNotFoundException fnfe) {
;
}
}
}
2.我自己实现时的代码:
if(file.canRead()){
if(file.isDirectory()){
File[] files = file.listFiles();
if(files != null){
for(File inDirFile : files){
indexDocs(writer,inDirFile);
}
}
}
else{
indexDocument(writer,file);
}
}
对目录下的文件要把每个文件取出,上面的红字表明了两个方法,方法1是先取出所有文件的路径,用的是File类的list()方法,返回的是路径的String 数组,接着对每个文件调用
new File(file, files[i])
这样就可以延迟读所有文件,处理到哪个文件就读哪个。
而我写的代码是调用File类的listFiles()方法,返回的是File[],所以会一开始就占用比较大的内存。
从读别人的代码可以知道自己的不足。以后要多学习
分享到:
相关推荐
二级目录结构是指在主目录下有多个子目录,每个子目录又可以包含子目录或文件,这种结构有助于提高文件管理的效率和可维护性。 这个实验主要用Java语言来实现,Java是一种广泛使用的面向对象的编程语言,具备跨平台...
课前准备包括学生和教师两个方面。学生需要搜集有关少数民族的图片和文字资料,教师则要准备相关的音频、图片、挂图和生字卡片。这样的准备有助于在教学过程中结合实际材料,提高学生的学习兴趣和效率。 教学过程中...
本课主要涉及两个核心概念:文件和文件夹,以及如何对它们进行压缩和解压缩。 首先,我们来了解什么是文件和文件夹。文件是计算机中存储信息的基本单位,它可以包含文字、图像、音频、视频等各种类型的数据。文件名...
3. **代码优化**:对于已有的算法,尝试从空间复杂度和时间复杂度两个方面进行优化。 #### 二、具体案例分析——“武器选择” 题目描述了一个有趣的游戏场景,其中涉及到如何计算不同武器的组合数量。具体来说,...
实验中主要涉及了两个关键函数:`opendir()` 和 `readdir()`。 `opendir()` 是一个用于打开目录的函数,接受一个参数,即要打开的目录路径,返回一个指向DIR类型的指针,该指针后续可以用于遍历目录中的文件。DIR...
在“VC C++”环境下,我们可以使用C++语言来实现这个文件压缩器。C++是一种面向对象的语言,适合构建这样的数据处理系统。在代码中,我们需要实现以下几个关键部分: 1. **字符频率统计**:读取原始文件,计算每个...
- 同一文件夹内不允许有两个文件或文件夹具有相同的完整名称(包括主文件名和扩展名)。 2. **资源管理器的使用** - 资源管理器是操作系统中用于浏览、管理和操作文件和文件夹的工具,提供了一个统一的界面。 - ...
在处理像“相遇问题”这类抽象概念时,多媒体技术可以形象地展示两个物体相向运动的过程,帮助学生理解相关术语和问题本质。 将学科知识与现实生活相结合也是信息技术2.0的一大优势。在教授《亿以内的读法和写法》...
这篇文档记录了作者在2022年实训过程中的体验和反思,主要涉及会计实训和C语言程序设计两个方面。 在会计实训部分,作者强调了实训在会计学习中的重要性,它不仅是理论与实践的结合,也是提升专业技能的关键环节。...
根据给定文件的信息,我们可以从中提炼出以下几个主要的知识点: ### 1. 自我反思与评价的基本框架 - **思想政治学习方面**: - 思想觉悟水平的提高。 - 积极参与学院及班级组织的思想政治学习。 - 在活动中...
此压缩包包含两个PPT文件,可能分别代表了不同的复盘维度或阶段。PPT是一种常见的展示工具,便于将复杂的项目信息以可视化的方式呈现出来,使团队成员能更直观地理解项目状况。通过这些PPT,我们可以看到项目的进度...
最后,通过构建一个文件系统来管理这些磁盘资源。 #### 1. 基本磁盘服务器 (BDS) ##### 1.1 需求分析 - **模拟物理磁盘**:通过互联网域套接字服务的方式模拟物理磁盘的行为。模拟的磁盘以柱面和扇区的形式组织。 ...
实验三主要探讨的是常微分方程(Ordinary Differential Equations, ODEs)的差分方法,这是数值分析中的一个重要领域,用于近似解决不能直接解析求解的微分方程。差分方法通过离散化连续的微分方程来得到一系列代数...
在"什么是余弦定理【《正弦定理余弦定理》课后反思】.pdf"这份文件中,很可能会包含上述这些内容的详细讨论,包括教学方法的改进、案例分析、学生常见错误的解析等,这些都是进一步学习和提高余弦定理理解和应用的...
它接收两个Excel文件路径,输出diff结果列表,列表项包括表名、两个表的数据和改动信息。 - `diff.py`是列表级别的diff算法,它处理两个list的比较,考虑了特殊情况,如公共前缀、后缀,以及部分匹配。使用LCS...
实验环境包括软件和硬件两个方面。软件环境是 Eclipse,硬件环境是 CPU PIV 以上,256M 内存,1G 硬盘空间。 3. 设计测试用例: 在正式编写测试代码之前,需要先设计好测试用例。测试用例包括待测试的类名、待测试...
在TCP/IP网络通信中,UDP(User Datagram Protocol)和TCP(Transmission Control Protocol)是两种主要的传输层协议。本作业聚焦于基于UDP的文件传输,这是一项基础且重要的实践任务,旨在让学生深入理解UDP的工作...
根据给定文件的信息,我们可以从中提炼出几个关键的知识点,这些知识点主要围绕着三班级(三年级)数学教学中的几个特定主题展开,包括两位数加两位数的口算、有余数的除法以及多位数乘一位数的计算。以下是基于这些...
12. **留出思考时间**:记录灵感,经常反思和自我激励,寻找更高效的工作方法。 13. **关闭即时通讯软件**:减少不必要的在线干扰,如关闭MSN或QQ等。 14. **管理电子邮件**:避免陷入邮件收件箱,设定固定时间...
这两份文件对于实习生来说具有重要意义。考核表可以帮助他们了解自己的工作表现,明确需要提升的方面;实习日志则是一种自我学习和反思的过程,有助于提高工作效率和质量。同时,这些文件也为实习单位提供了一个评估...