Talend tFileList组件可帮助您迭代和读取多个文件。如果我们想从元数据相同的源加载多个文件,则可以使用此tFileList组件。
为了演示Talend tFileList,我们将读取三个文本文件,并将这些文件中的数据加载到另一个文本文件中。下图显示了其中一个文本文件中的数据。

Talend tFileList示例
首先,将tFileList拖放到Job设计空间中。

下图显示了组件选项卡中可用的tFileList属性。在“目录”中,我们需要选择包含所需文件的目录或文件夹。让我单击“...”浏览按钮并选择“Customers”文件夹。

在“Talend FileList类型”下,我们有三个选项。如果我们只有文件,请选择第一个选项。当有子目录时,请选择两个选项或“目录”选项。另外,请选中“包含子目录”选项。
在“文件”部分,单击“添加”按钮并选择“文件掩码”。在这里,我们使用了*.txt,因为我们想读取此文件夹中的所有文本文件。如果您想要所有文件,则为\*.\*(第一个*代表所有文件,第二个*代表所有文件扩展名)。
使用“排序依据”部分更改文件选择的顺序。现在,我们选择按文件名排序的选项。

接下来,拖放tFileInputDelimited以读取每个文本文件中的数据或记录。

单击“编辑模式”按钮并添加列名、数据类型、长度和精度。

要读取一个文件,我们通常在“文件名/流”部分选择该文件。但是,在此场景中,我们需要读取多个文件,并且我们的文件名来自Talend tFileList。因此,当您键入t并按Control+Space时,将出现以下选项。请选择tFileList1.current_filepath。如果您想要文件名,请选择文件名。

请检查File input delimited的其他所有选项,例如字段分隔符、标题行、页脚行和行分隔符。
接下来,我们使用tLogRow显示记录。将tLogRow添加到工作流并连接到tFileInputDelimited。接下来,在tLogRow组件选项卡中,选择“表”选项。让我运行此Talend tFileList作业。

从上图可以看到所有记录。让我用tFileOutputDelimited替换tLogRow,并创建一个以txt扩展名命名的新文件名。
由于我们正在从多个文件加载数据,因此必须选择“追加”选项。接下来,我们需要标题,因此我们选中“包含标题”选项。

让我重新运行Talend tFileList作业。

您可以看到所有三个文本文件中的记录。

让我将tFileList的排序操作从ASC更改为DESC(降序),并删除CustomersFileList文本文件。

现在您可以看到以不同顺序存储的记录。
