在Java编程中,文件操作是必不可少的一部分。本文将详细讲解如何使用Java按行读取文件以及如何遍历目录,包括递归和非递归两种方法。 我们来看按行读取文件。在Java中,通常使用`java.io.BufferedReader`或`java.io.LineNumberReader`类来实现这一功能。下面的代码示例展示了如何使用`LineNumberReader`来读取文件的每一行,并将内容存储到两个列表中: ```java public class ReadTest { public static List<String> first_list; public static List<String> second_list; public ReadTest() { first_list = new LinkedList<>(); second_list = new LinkedList<>(); } public static void ReadFile() { final String filename = "d://aa.txt"; String str = null; int i = 0; try { LineNumberReader reader = new LineNumberReader(new FileReader(filename)); while ((str = reader.readLine()) != null) { if (!str.isEmpty()) { String values[] = str.split(" "); first_list.add(values[0]); second_list.add(values[1]); } } } catch (IOException e) { e.printStackTrace(); } } public static void main(String args[]) { ReadTest reader = new ReadTest(); reader.ReadFile(); for (int i = 0; i < first_list.size(); i++) { System.out.println(first_list.get(i) + ":" + second_list.get(i)); } } } ``` 这段代码首先创建了两个`LinkedList`对象,然后通过`LineNumberReader`读取文件`aa.txt`的每一行。如果行不为空,它会使用`split()`方法根据空格将行内容分割成两部分,并分别存入`first_list`和`second_list`。 接下来,我们讨论如何遍历目录。Java中的`java.io.File`类提供了遍历目录的功能。递归遍历目录的示例如下: ```java class ListFiles{ public static ArrayList<File> filelist = new ArrayList<>(); public static void listfiles(String dir){ File file = new File(dir); File[] files = file.listFiles(); if(null == files){ return; } for(int i = 0; i < files.length; i++){ if(files[i].isDirectory()){ listfiles(files[i].getAbsolutePath()); } else{ System.out.println(files[i]); filelist.add(files[i]); } } } } ``` 这个`listfiles`方法会递归地遍历指定目录下的所有文件和子目录,将文件对象添加到`ArrayList`中并打印文件路径。 非递归遍历目录的实现如下: ```java public static void scanDirNoRecursion(String path){ LinkedList<File> list = new LinkedList<>(); File dir = new File(path); File[] file = dir.listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isDirectory()) { list.add(file[i]); } else{ System.out.println(file[i].getAbsolutePath()); } } } ``` 在这个非递归版本中,我们同样使用`File`类,但不再递归调用,而是将所有子目录添加到`LinkedList`中,然后一次处理所有文件。 总结来说,Java提供了丰富的API来处理文件和目录操作。按行读取文件可以使用`LineNumberReader`或`BufferedReader`,遍历目录则可以通过`File`类的`listFiles()`方法,结合递归或非递归的方式实现。在实际开发中,根据需求选择合适的方法,可以有效地管理和操作文件系统资源。





















- 粉丝: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 数据库技术讲座教学文案.ppt
- 基于新型DSP的励磁控制器数据采集系统的设计的开题报告.docx
- 计算机应用基础在线考试(附答案).doc
- 计算机技术在新闻广电节目制作中的应用(1).docx
- 计算机软件开发合同.doc
- 电子商务专业介绍 ppt.pptx
- autocad(2009.9.7)教材配套资源ppt课件(完整版).zip
- 红旗Linux认证培训.ppt
- 基于二维码门牌的信息化服务模式研究.docx
- 基于计算机实验室管理现状的分析.docx
- 新版软件系统实施方案(1).doc
- 基于PLC的机床控制系统设计.doc
- 全国计算机等级考试四级网络工程师历年真题及答案汇编2008年4月2011年9月1.docx
- 计算机应用技术专业英语介绍省公开课金奖全国赛课一等奖微课获奖PPT课件.pptx
- 县教育信息化建设实施方案.doc
- 湖北省郧阳科技学校教学信息化应用系统建设试点工作方案.doc


