如何将文件夹内的所有文件作为函数的输入传递?
假设我有一个名为 A 的文件夹,在这个文件夹中我有三个文件,分别是1.txt
,2.txt
和3.txt
.
另一方面,我有一个函数可以获取文件名作为输入。我怎么能说使用文件夹 A 中的所有文件作为输入来运行此函数。
如果函数是
void readfile(String x)
我想打电话readfile("1.txt")
,readfile("2.txt")
和readfile("3.txt")
。
您可以从目录中获取所有文件,如下所示
File mainFolder = new File("C:\\yourDir");
getFiles(mainFolder);
public void getFiles(File f)
{
File files[];
if(f.isFile())
System.out.println(f.getAbsolutePath());
else
{
files = f.listFiles();
for (int i = 0; i < files.length; i++)
{
getFiles(files[i]);
}
}
}
此代码仅打印文件。您可以将其存储起来Set<String>
,然后将其提供给您的功能。要从不同的文件中读取,您需要创建那么多 FileReader。例如
BufferedReader reader1 = new BufferedReader(new FileReader(new File("file1.txt")));
BufferedReader reader2 = new BufferedReader(new FileReader(new File("file2.txt")));
BufferedReader reader2 = new BufferedReader(new FileReader(new File("file3.txt")));
如果您希望一次从所有 3 个文件中读取每一行,我建议您创建一个无限 for 循环并检查if(reader1.readLine()!=null)
每个阅读器。break;
当所有读者都返回 null时,您可以。不要忘记在finally 块中关闭流。
reader1.close();
reader1.close();
reader1.close();