# Load File Lines

### Overview

The **Load File Lines** component is a Line-by-Line File Reader Component which reads a file stored in the system using its unique file ID and sends its content to the output port, one line at a time. The order of the lines reaching a destination component is not guaranteed and may not match the exact order in the source file. Each output message contains an `index` property corresponding to the line number in the source file.

### Usage

This component is useful for processing files where line-by-line processing is required, such as log parsing, streaming data, or batch processing workflows.

#### Properties

| Property | Type     | Description                                   |
| -------- | -------- | --------------------------------------------- |
| `fileId` | `string` | The unique identifier of the file to be read. |

#### Input Ports

| Port | Description                     |
| ---- | ------------------------------- |
| `in` | Accepts the file ID to be read. |

#### Output Ports

| Port      | Description                                              |
| --------- | -------------------------------------------------------- |
| `content` | Emits the file’s content line by line.                   |
| `index`   | Indicates the original line number from the source file. |

#### Processing Logic

1. **Receives Input Data**:
   * Accepts a `fileId` that identifies the stored file.
2. **Reads File Content Line by Line**:
   * Streams the file content and reads it one line at a time.
   * Each line is assigned an `index` value corresponding to its position in the file.
3. **Sends File Content**:
   * Emits each line as a separate output message.
   * The order of the lines in the output is not guaranteed to match the order in the source file.
   * If an error occurs (e.g., file not found), it is logged or raised appropriately.

#### Output Data Schema

| Property | Type      | Description                                    |
| -------- | --------- | ---------------------------------------------- |
| `index`  | `integer` | The position of the line in the original file. |
| `line`   | `string`  | The content of the line.                       |

### Notes

* **Emits Lines Independently**: Each line is processed separately, making it useful for parallel processing.
* **Order is Not Guaranteed**: Due to streaming behavior, the order of lines in the output may not match the original file order.
* **Ideal for Log Processing and Streaming Workflows**: Useful for scenarios where each line represents an independent unit of data.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.appmixer.com/connector-configuration/utils/files/load-file-lines.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
