输出目录中多个.txt文件内的字符串

时间:2011-03-30 03:28:58

标签: java

我有一个文件夹,其文件名是:“名称列表”。在该文件夹中,我有一个5“.txt”文件,每个文件名都是一个人的姓名。

我想检索五个文档并在每个文档中显示字符串。我该怎么做呢?我试过这个:

import java.io.*;
import java.util.*;

public class Liarliar {
    public static void main(String args[])throws IOException{

        File Galileo = new File("C:\\List of names\\Galileo.txt");
        File Leonardo = new File("C:\\List of names\\Leonardo.txt");
        File Rafael = new File("C:\\List of names\\Rafael.txt");
        File Donatello = new File("C:\\List of names\\Donatello.txt");
        File Michael = new File("C:\\List of names\\Michael.txt");
        FileInputStream fis = null;
        BufferedInputStream bis = null;
        DataInputStream dis = null;

        try{
            System.out.println("Enter a number list of names:");
            Scanner scanner = new Scanner(System.in);
            int input = scanner.nextInt();

        }catch(FileNotFoundException e){
        }catch(IOException e){
        }
    }
}

提前感谢某人的时间......

2 个答案:

答案 0 :(得分:1)

如果不对Galileo.txt等单个文件的名称进行硬编码,那将更为通用。您可以创建表示目录的文件,然后调用listFiles以获取目录中的所有文件,例如

File nameFile = new File(""C:\\List of names");
File[] personFiles = nameFile.listFiles();

然后你可以迭代这个File数组,依次打开每个文件,然后读取内容,比如

for (File person : personFiles) {
    showFileDetails(person);
}

其中showFileDetails是您为打开文件和显示信息而编写的单独方法。

答案 1 :(得分:0)

不需要以下几行,因为它们是为了从用户那里获取输入。

System.out.println("Enter a number list of names:");             
Scanner scanner = new Scanner(System.in);             
int input = scanner.nextInt(); 

相反,您需要使用FileInputStream或FileReader逐个读取文件。有关如何从文件中读取数据的示例,请参阅here。为每个文件执行此操作。