Introduction
The is a destination component that writes incoming data to a file or multiple files as needed. It serves to expand on the File Writer component with additional configurations and settings.
This adapter can be easily modified to add additional functionality or to fulfil extra requirements.
Running the Component
STEP 1: Import the To File component
Using the button, import the To File component.
STEP 2: Setup the component configurations in the component card
Fields marked with an asterisk* are required, otherwise default values defined in config.json are used:
Field |
| Default Value |
---|
DestinationDirectory * | The directory where the output file(s) will be stored. The adapter will attempt to create it if it does not exist. | - |
OutputFileMask | The name and extension of the output files. See Additional details. | output_%Y_%m_%d_%H_%M_%S.txt
|
OneFilePerMessage | Specifies whether each inbound message will have its own file. | false
|
OutputEncoding | The encoding used in the output file. If left blank, encoding will be updated to the default according to OS. See supported encodings in Additional Details. | Western (Windows-1252) for Windows
Western (ISO-8859-1) for Linux/Mac OS X.
|
Escape8BitCharacters | Specifies whether to escape non-ASCII characters in outbound messages. Ex. "é" would be sent as "\XE9\" (in Latin-1 or Windows-1252) or "\XC3\\XA9\" (in UTF-8). | false
|
UseTempFiles | Specifies whether to use temporary files while writing. When true, it will append “.tmp” to files currently being written until the component is done writing to them. It will only remove the .tmp extension when a new file is written in. | true
|
STEP 3: Start the component and verify the files from your destination directory
Start the component.
Once inbound messages are processed, check the defined destination directory to see your newly created file(s).
Example Configurations
Example 1 - If you want one file for all messages
If you want one file for all messages:
The OutputFileMask will behave differently depending if OneFilePerMessage is set to true:
OneFilePerMessage set to false will result in a single file “output.txt“ that all the incoming data will be written to.
OneFilePerMessage set to true will result in individual files generated as output.txt, output(1).txt, output(2).txt and so on. Similarly, with a timestamp mask “output_%Y_%m_%d_%H_%M_%S.txt”, if two messages come in at the same time then the name of the files will be: “output_2024_12_30_16_45_55.txt” and “output_2024_12_30_16_45_55(1).txt”
Example 2 - If you want one file for every message
If you want one file for every message:
Set OnFilePerMessage to true
Using the default OutputFileMask, the timestamp will be updated with the current time, each time a message is written to the file.
Example 3 - If you want one file for all the messages that came in the same second/minute/hour/day/month/year
If you want one file for all the messages that came in the same second/minute/hour/day/month/year:
If 2 bits of data arrived at 2024/12/30 at 16:45:55, they will be written to the same file with the name “output_2024_12_30_16_45_55.txt” (unless the OneFilePerMessage field is set to true).
If another bit came a second later, it will create a new file “output_2024_12_30_16_45_56.txt” and so on.
Additional Details
OutputFileMask
The OutputFileMask is the format for the name that the resulting files will take. It can also be used to determine when a new file is created.
You can modify a mask as required, but the smallest unit will determine how often a new file is created/a roll-over happens. This allows you to organize data by the second/minute/hour/day/month/year (or millisecond) it arrived in.
“output_%Y_%m_%d_%H_%M_%S.txt” will have masks replaced with timestamps as follows:
%Y: Year
%m: Month
%d: Day
%H: Hour
%M: Minute
%S: Second
%f: Millisecond
Supported encodings (OutputEncoding configuration)
Name | Code |
---|
Chinese (Big 5 HKSCS) | BIG5-HKSCS |
Chinese (GB 18030) | GB18030 |
Chinese (GB 2312) | GB2312 |
Chinese (GBK) | GBK |
Japanese (ISO-2022-JP) | ISO-2022-JP |
Korean (ISO-2022-KR) | ISO-2022-KR |
Western (ISO-8859-1) | ISO-8859-1 |
Central European (ISO-8859-2) | ISO-8859-2 |
South European (ISO-8859-3) | ISO-8859-3 |
Central European (ISO-8859-4) | ISO-8859-4 |
Cyrillic (ISO-8859-5) | ISO-8859-5 |
Arabic (ISO-8859-6) | ISO-8859-6 |
Greek (ISO-8859-7) | ISO-8859-7 |
Hebrew (ISO-8859-8) | ISO-8859-8 |
Turkish (ISO-8859-9) | ISO-8859-9 |
Western (Windows-1252) | Windows-1252 |
Chinese (Big 5) | big5 |
Japanese (EUC-JP) | eucJP |
Japanese (Shift JIS) | sjis |
8-Bit Unicode | UTF-8 |