> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IFileWriter Interface

This is the interface for a file writing stream. This interface and all its methods are implemented on the client-side.

## Methods

| Name                                                                                                  | Description                                           |
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| [Close](/fine-reader/engine/api-reference/supplementary-objects-and-methods/ifilewriter/close-method) | Finishes writing the file into memory.                |
| [Open](/fine-reader/engine/api-reference/supplementary-objects-and-methods/ifilewriter/open-method)   | Starts writing the specified file into memory.        |
| [Write](/fine-reader/engine/api-reference/supplementary-objects-and-methods/ifilewriter/write-method) | Writes a portion of data into the file writer stream. |

## Input parameter

The [ExportToMemory](/fine-reader/engine/api-reference/document-related-objects/frdocument/exporttomemory-method) method of the [FRDocument](/fine-reader/engine/api-reference/document-related-objects/frdocument) object receives a pointer to this interface as an input parameter.

## Samples

<Accordion title="C# code">
  ```csharp theme={null}
  public class FileWriter : FREngine.IFileWriter
  {
   public FileWriter( string _resultsPath )
   {
    resultsPath = _resultsPath;
   }
   public void Open( string fileName, ref int bufferSize )
   {
    string resultsFilePath = resultsPath + fileName;
    stream = new FileStream( resultsFilePath, FileMode.Create );
   }
   public void Write( byte[] data )
   {
    stream.Write( data, 0, data.Length);
   }
   public void Close()
   {
    stream.Close();
   }
   private string resultsPath;
   private FileStream stream;
  }
  ```
</Accordion>

## Remarks

In Linux, this interface does not work if the Engine object is loaded as an out-of-process server.

## See also

[IReadStream](/fine-reader/engine/api-reference/supplementary-objects-and-methods/ireadstream)
