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

# Get file contents

A query to get the contents of a file. Queries do not change the state of the file or require network consensus. The information is returned from a single node processing the query.

**Query Signing Requirements**

* The client operator private key is required to sign the query request

**Query Fees**

* Please see the transaction and query [fees](/networks/fees#transaction-and-query-fees) table for the base transaction fee
* Please use the [Hedera fee estimator](https://hedera.com/fees) to estimate your query fee cost

| Constructor               | Description                            |
| ------------------------- | -------------------------------------- |
| `new FileContentsQuery()` | Initializes a FileContentsQuery object |

```java theme={null}
new FileContentsQuery()
```

### Methods

| Method                | Type   | Description                                    |
| --------------------- | ------ | ---------------------------------------------- |
| `setFileId(<fileId>)` | FileId | The ID of the file to get contents for (x.z.y) |

<CodeGroup>
  ```java Java theme={null}
  //Create the query
  FileContentsQuery query = new FileContentsQuery()
      .setFileId(newFileId);

  //Sign with client operator private key and submit the query to a Hedera network
  ByteString contents = query.execute(client);

  //Change to Utf-8 encoding
  String contentsToUtf8 = contents.toStringUtf8();

  System.out.println(contentsToUtf8);

  //v2.0.0
  ```

  ```javascript JavaScript theme={null}
  //Create the query
  const query = new FileContentsQuery()
      .setFileId(newFileId);

  //Sign with client operator private key and submit the query to a Hedera network
  const contents = await query.execute(client);

  console.log(contents.toString());

  //v2.0.7
  ```

  ```java Go theme={null}
  //Create the query
  query := hedera.NewFileContentsQuery().
  		SetFileID(newFileId)

  //Sign with client operator private key and submit the query to a Hedera network
  contents, err := query.Execute(client)

  fmt.Println(string(contents))

  //v2.0.0
  ```

  ```rust Rust theme={null}
  // Create the query
  let query = FileContentsQuery::new()
      .file_id(file_id);

  // Submit the query to a Hedera network
  let contents = query.execute(&client).await?;

  // Print the contents to the console
  println!("File contents: {:?}", String::from_utf8_lossy(&contents));

  // v0.34.0
  ```
</CodeGroup>

## Get query values

| Method        | Type   | Description                                    |
| ------------- | ------ | ---------------------------------------------- |
| `getFileId()` | FileId | The ID of the file to get contents for (x.z.y) |

<CodeGroup>
  ```java Java theme={null}
  //Create the query
  FileContentsQuery query = new FileContentsQuery()
      .setFileId(newFileId);

  //Get file ID
  FileId getFileId = query.getFileId();

  //v2.0.0
  ```

  ```javascript JavaScript theme={null}
  //Create the query
  const query = new FileContentsQuery()
      .setFileId(newFileId);

  //Get file ID
  const getFileId = query.getFileId();
  ```

  ```java Go theme={null}
  //Create the query
  query := hedera.NewFileContentsQuery().
  		SetFileID(newFileId)
  		
  //Get file ID
  getFileId := query.GetFileID()

  //v2.0.0
  ```

  ```rust Rust theme={null}
  // Create the query
  let query = FileContentsQuery::new()
      .file_id(file_id);

  // Get the file ID
  let file_id = query.get_file_id();

  // v0.34.0
  ```
</CodeGroup>
