文件读取和写入是计算机程序中常见的操作,用于从文件中读取数据或将数据写入文件。在C#中,使用System.IO
命名空间中的类来进行文件读写操作。本文将详细介绍如何在C#中进行文件读取和写入,包括读取文本文件、写入文本文件、读取二进制文件和写入二进制文件等操作。
1. 读取文本文件
要读取文本文件,可以使用StreamReader
类。以下是一个读取文本文件的示例:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string filePath = "sample.txt";
try
{
using (StreamReader reader = new StreamReader(filePath))
{
string content = reader.ReadToEnd();
Console.WriteLine("文件内容:");
Console.WriteLine(content);
}
}
catch (FileNotFoundException)
{
Console.WriteLine("文件不存在:" + filePath);
}
catch (Exception ex)
{
Console.WriteLine("发生异常:" + ex.Message);
}
}
}
在上述示例中,我们使用StreamReader
打开文件并使用ReadToEnd
方法读取整个文件内容。通过using
语句,确保在使用完StreamReader
后自动释放资源。
2. 写入文本文件
要写入文本文件,可以使用StreamWriter
类。以下是一个写入文本文件的示例:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string filePath = "output.txt";
try
{
using (StreamWriter writer = new StreamWriter(filePath))
{
writer.WriteLine("Hello, world!");
writer.WriteLine("This is a line of text.");
}
Console.WriteLine("文件写入成功:" + filePath);
}
catch (Exception ex)
{
Console.WriteLine("发生异常:" + ex.Message);
}
}
}
在上述示例中,我们使用StreamWriter
打开文件并使用WriteLine
方法写入文本。同样,通过using
语句,确保在使用完StreamWriter
后自动释放资源。
3. 读取二进制文件
要读取二进制文件,可以使用BinaryReader
类。以下是一个读取二进制文件的示例:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string filePath = "binary.dat";
try
{
using (BinaryReader reader = new BinaryReader(File.OpenRead(filePath)))
{
int intValue = reader.ReadInt32();
double doubleValue = reader.ReadDouble();
Console.WriteLine("整数值:" + intValue);
Console.WriteLine("双精度值:" + doubleValue);
}
}
catch (FileNotFoundException)
{
Console.WriteLine("文件不存在:" + filePath);
}
catch (Exception ex)
{
Console.WriteLine("发生异常:" + ex.Message);
}
}
}
在上述示例中,我们使用BinaryReader
读取二进制文件中的整数和双精度值。
4. 写入二进制文件
要写入二进制文件,可以使用BinaryWriter
类。以下是一个写入二进制文件的示例:
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string filePath = "binary_output.dat";
try
{
using (BinaryWriter writer = new BinaryWriter(File.OpenWrite(filePath)))
{
int intValue = 42;
double doubleValue = 3.14159;
writer.Write(intValue);
writer.Write(doubleValue);
}
Console.WriteLine("二进制文件写入成功:" + filePath);
}
catch (Exception ex)
{
Console.WriteLine("发生异常:" + ex.Message);
}
}
}
在上述示例中,我们使用BinaryWriter
写入整数和双精度值到二进制文件。
5. 文件读写的注意事项
-
在进行文件读写操作时,始终确保正确地处理异常。文件可能不存在、无法访问或者发生其他问题,您应该能够适当地捕获并处理这些异常。
-
在使用
StreamReader
和StreamWriter
时,使用using
语句来自动释放资源。这有助于防止资源泄漏。 -
对于二进制文件的读写,要确保按照相同的顺序和格式读写数据。不同的数据类型可能占用不同的字节数,需要保持一致。
6. 总结
文件读取和写入是C#中常见的操作,用于从文件中读取数据或将数据写入文件。通过System.IO
命名空间中的类,您可以轻松实现文本文件和二进制文件的读写操作。无论是读取文本文件、写入文本文件,还是读取二进制文件、写入二进制文件,都需要注意异常处理、资源释放以及数据格式的一致性。通过掌握文件读写技巧,您可以更好地处理和管理文件数据,从而提高程序的灵活性和功能。