列出文件内容的程序-java实现

import java.util.Scanner;

import java.io.FileReader;

import java.io.IOException;


public class listFiles{

public static void main(String[] args){

if(args.length==0){

System.out.printn("No files specified!");

for(String fileName:args){

listFile(fileName);

}

public static void listFile(String fileName){

Scanner fileIn=null;

System.out.println("file"+fileName);

try{

fileIn=new Scanner(new FileReader(fileName));

while(fileIn.hasNextLine()){

String oneLine=fileIn.nextLine();

System.out.println(oneLine);

}

}

catch(IOException e){

System.out.println(e);

}

finally{

//close the stream

if(fileIn!=null)

fileIn.close();

}

}

}

说明:

有一个列出文本文件内容的程序,文本文件名有命令行参数指定,mian例程只是通过命令行参数将每个字符传递给listFile,在listFile中,我们创建FileReader对象,然后用它来创建Scanner对象fileIn。

以下是递归实现列出当前工程下所有.java文件的代码: ```java import java.io.File; public class ListJavaFiles { public static void main(String[] args) { File projectDir = new File("."); listJavaFiles(projectDir); } public static void listJavaFiles(File dir) { File[] files = dir.listFiles(); for (File file : files) { if (file.isDirectory()) { listJavaFiles(file); } else if (file.getName().endsWith(".java")) { System.out.println(file.getAbsolutePath()); } } } } ``` 代码解析: 1. 首先定义了一个 `listJavaFiles` 方法,该方法接收一个 `File` 类型的参数,表示要列出其中的所有 `.java` 文件。 2. 在方法中,首先调用 `listFiles` 方法获取当前目录下的所有文件文件夹。 3. 然后遍历这些文件文件夹,如果是文件夹,则递归调用 `listJavaFiles` 方法,如果是 `.java` 文件,则输出其绝对路径。 4. 在 `main` 方法中,首先获取当前工程的目录,然后调用 `listJavaFiles` 方法,即可列出所有 `.java` 文件的路径。 注意事项: 1. 代码中使用了 `endsWith` 方法判断文件名是否以 `.java` 结尾,这种方式并不是非常严谨,因为有可能存在文件名为 `.java` 的文件,但是不是 Java文件。更好的方式是使用正则表达式判断文件内容是否符合 Java 语法规范。 2. 代码中没有处理文件访问权限的问题,如果当前用户没有读取某个文件的权限,程序将会抛出异常。可以在代码中添加异常处理逻辑,或者使用 Java 8 的新特性 `Files.walk` 方法来遍历文件,该方法可以自动处理文件访问权限的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值