---
title: "How do you ensure a file is properly closed after reading or writing?"  
description: "How do you ensure a file is properly closed after reading or writing?"  
author: "Ravi Vishwakarma"  
published: 2025-05-05  
updated: 2025-05-05  
canonical: https://www.mindstick.com/interview/34083/how-do-you-ensure-a-file-is-properly-closed-after-reading-or-writing  
category: "c#"  
tags: ["c#", "file handling"]  
reading_time: 2 minutes  

---

# How do you ensure a file is properly closed after reading or writing?

To ensure a file is properly closed after reading or writing in C#, you should use the `using` statement. It guarantees that the `FileStream` (or any `IDisposable` object) is automatically closed and disposed, even if an exception occurs.

### Recommended: Use `using`

```cs
using (FileStream fs = new FileStream("example.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
    byte[] data = System.Text.Encoding.UTF8.GetBytes("Hello");
    fs.Write(data, 0, data.Length);
} // FileStream is automatically closed here
```

### Without `using` (not recommended unless managed manually)

```cs
FileStream fs = null;
try
{
    fs = new FileStream("example.txt", FileMode.OpenOrCreate, FileAccess.Write);
    byte[] data = System.Text.Encoding.UTF8.GetBytes("Hello");
    fs.Write(data, 0, data.Length);
}
finally
{
    if (fs != null)
        fs.Close(); // Must ensure it's always closed
}
```

Using `using` is cleaner and less error-prone.

## Answers

### Answer by Ravi Vishwakarma

To ensure a file is properly closed after reading or writing in C#, you should use the `using` statement. It guarantees that the `FileStream` (or any `IDisposable` object) is automatically closed and disposed, even if an exception occurs.

### Recommended: Use `using`

```cs
using (FileStream fs = new FileStream("example.txt", FileMode.OpenOrCreate, FileAccess.Write))
{
    byte[] data = System.Text.Encoding.UTF8.GetBytes("Hello");
    fs.Write(data, 0, data.Length);
} // FileStream is automatically closed here
```

### Without `using` (not recommended unless managed manually)

```cs
FileStream fs = null;
try
{
    fs = new FileStream("example.txt", FileMode.OpenOrCreate, FileAccess.Write);
    byte[] data = System.Text.Encoding.UTF8.GetBytes("Hello");
    fs.Write(data, 0, data.Length);
}
finally
{
    if (fs != null)
        fs.Close(); // Must ensure it's always closed
}
```

Using `using` is cleaner and less error-prone.


---

Original Source: https://www.mindstick.com/interview/34083/how-do-you-ensure-a-file-is-properly-closed-after-reading-or-writing

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
