0

如何将文件夹内的所有文件作为函数的输入传递?

假设我有一个名为 A 的文件夹,在这个文件夹中我有三个文件,分别是1.txt,2.txt3.txt.

另一方面,我有一个函数可以获取文件名作为输入。我怎么能说使用文件夹 A 中的所有文件作为输入来运行此函数。

如果函数是

void readfile(String x)

我想打电话readfile("1.txt")readfile("2.txt")readfile("3.txt")

4

1 回答 1

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)每个阅读器。break;当所有读者都返回 null时,您可以。不要忘记在finally 块中关闭流。

reader1.close();
reader1.close();
reader1.close();
于 2013-05-26T08:09:27.793 回答