如何将文件夹中的所有文件作为函数的输入传递?
假设我有一个名为A的文件夹,在此文件夹中我有三个文件1.txt
,2.txt
和3.txt
。
另一方面,我有一个函数,它获取文件名作为输入。我怎么能用文件夹A中的所有文件作为输入来运行此函数。
如果功能是
void readfile(String x)
我想致电readfile("1.txt")
,readfile("2.txt")
和readfile("3.txt")
。
答案 0 :(得分:1)
您可以从目录中获取所有文件,如下所示
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)
。当所有读者返回null 时,您可以break;
。不要忘记在 finally块中关闭流。
reader1.close();
reader1.close();
reader1.close();