C#编程:详尽指南——读写TXT文件
需积分: 13 88 浏览量
更新于2024-09-18
收藏 2KB TXT 举报
"这篇教程详细介绍了如何在C#中读取和写入TXT文本文件,提供了两种主要的方法:使用FileStream和使用StreamReader/StreamWriter。"
在C#编程中,读取和写入TXT文件是常见的任务。以下是两种常用方法的详细说明:
### 1. 使用FileStream读取TXT文件
```csharp
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
// 定义字节和字符数组
byte[] byData = new byte[100];
char[] charData = new char[1000];
try {
// 创建FileStream对象,打开指定路径的文件
FileStream sFile = new FileStream("文件路径", FileMode.Open);
// 将文件指针移动到第56个字节(SeekOrigin.Begin是从文件开头计算)
sFile.Seek(55, SeekOrigin.Begin);
// 读取100个字节到字节数组
sFile.Read(byData, 0, 100);
// 创建解码器,将字节转换为字符
Decoder d = Encoding.UTF8.GetDecoder();
// 将字节数组转换为字符数组
d.GetChars(byData, 0, byData.Length, charData, 0);
// 打印字符数组
Console.WriteLine(charData);
// 关闭文件流
sFile.Close();
} catch (IOException e) {
Console.WriteLine("发生了IOException异常!");
Console.WriteLine(e.ToString());
Console.ReadLine();
return;
}
```
这段代码展示了如何使用FileStream类从指定位置读取TXT文件。`FileMode.Open`表示打开现有文件,`Seek`方法用于设置文件读取的起始位置,`Read`方法用于读取字节,最后使用`GetDecoder`和`GetChars`方法将字节转换为字符。
### 2. 使用StreamReader和StreamWriter读写TXT文件
```csharp
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
// 读取文件
StreamReader objReader = new StreamReader("文件路径");
string sLine = "";
ArrayList LineList = new ArrayList();
while (sLine != null) {
sLine = objReader.ReadLine();
if (sLine != null)
LineList.Add(sLine);
}
// 关闭读取流
objReader.Close();
// 写入文件
StreamWriter objWriter = new StreamWriter("文件路径");
// 遍历ArrayList并写入文件
foreach (string line in LineList)
objWriter.WriteLine(line);
// 清理并关闭写入流
objWriter.Flush();
objWriter.Close();
```
这里使用了StreamReader来逐行读取TXT文件,并将每一行存储在一个ArrayList中。然后,使用StreamWriter将ArrayList中的行写回文件。`StreamReader.ReadLine()`方法用于读取文件的下一行,而`StreamWriter.WriteLine()`方法用于写入文本。
总结,C#中读取和写入TXT文件可以选择FileStream、StreamReader或StreamWriter,具体选择取决于你的需求,例如是否需要逐行处理、是否关心文件的当前位置等。在进行文件操作时,记得始终处理可能出现的异常,并确保在操作完成后正确关闭文件流,以避免资源泄漏。
224 浏览量
321 浏览量
2016-08-26 上传
2016-08-26 上传
150 浏览量
2009-01-09 上传
2014-07-13 上传
2008-11-01 上传
xlgt_8075
- 粉丝: 0
- 资源: 14
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍