将文件夹中的所有文件作为函数的输入传递

时间:2013-05-26 07:47:56

标签: java methods input

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

假设我有一个名为A的文件夹,在此文件夹中我有三个文件1.txt2.txt3.txt

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

如果功能是

void readfile(String x)

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

1 个答案:

答案 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();