我有一个文件夹,其文件名是:“名称列表”。在该文件夹中,我有一个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){
}
}
}
提前感谢某人的时间......
答案 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。为每个文件执行此操作。