C# 读取 文件 方法
C# 读取 文件 方法 讲解很详细 用C#读取txt文件的方法 1、使用FileStream读写文件 文件头: using System; using System.Collections.Generic; using System.Text; using System.IO; 读文件核心代码: byte[] byData = new byte[100]; char[] charData = new char[1000]; try { FileStream sFile = new FileStream("文件路径",FileMode.Open); sFile.Seek(55, SeekOrigin.Begin); sFile.Read(byData, 0, 100); //第一个参数是被传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符. } ### C# 读取文件方法详解 在C#编程中,读取文件是一项常见的操作,尤其是在处理文本文件如TXT时更是如此。本文将详细介绍几种常用的读取TXT文件的方法,并通过具体的示例代码来帮助理解。 #### 一、使用`FileStream`进行文件读取 `FileStream`类提供了一个直接与文件系统交互的方式,可以用来读取或写入二进制流到文件。下面是一段典型的使用`FileStream`读取文件的例子: ```csharp using System; using System.Collections.Generic; using System.Text; using System.IO; class FileOperations { public static void ReadWithFileStream() { byte[] byData = new byte[100]; char[] charData = new char[1000]; try { FileStream sFile = new FileStream("文件路径", FileMode.Open); sFile.Seek(55, SeekOrigin.Begin); // 移动文件指针到第55个字节处 sFile.Read(byData, 0, 100); // 从文件中读取最多100个字节到byData数组 Decoder d = Encoding.UTF8.GetDecoder(); d.GetChars(byData, 0, byData.Length, charData, 0); Console.WriteLine(new string(charData)); // 输出读取的内容 } catch (IOException e) { Console.WriteLine("An IO exception has been thrown!"); Console.WriteLine(e.ToString()); } } public static void WriteWithFileStream() { FileStream fs = new FileStream("文件路径", FileMode.Create); byte[] data = new UTF8Encoding().GetBytes("要写入的内容"); fs.Write(data, 0, data.Length); // 写入数据 fs.Flush(); // 刷新流 fs.Close(); // 关闭文件 } } ``` 在这个例子中,我们首先创建了一个`FileStream`实例,并指定了文件的打开模式为`FileMode.Open`,意味着文件必须存在并且会以只读方式打开。然后使用`Seek`方法将文件指针移动到指定位置,再调用`Read`方法读取指定数量的字节。通过`Encoding.UTF8.GetDecoder()`解码读取到的字节数据,将其转换成字符串形式输出。 #### 二、使用`StreamReader`和`StreamWriter`读写文件 除了`FileStream`之外,`StreamReader`和`StreamWriter`也是读写文件非常方便的工具。它们提供了更高级别的抽象层,使得文本文件的操作更加简单。 ```csharp using System; using System.Collections.Generic; using System.Text; using System.IO; class FileOperations { public static ArrayList ReadWithStreamReader() { ArrayList lineList = new ArrayList(); using (StreamReader objReader = new StreamReader("文件路径")) { string sLine = ""; while ((sLine = objReader.ReadLine()) != null) { if (!string.IsNullOrEmpty(sLine)) { lineList.Add(sLine); } } } return lineList; } public static void WriteWithStreamWriter() { using (FileStream fs = new FileStream("文件路径", FileMode.Create)) using (StreamWriter sw = new StreamWriter(fs)) { sw.Write("要写入的内容"); // 写入字符串 sw.Flush(); // 刷新流 } } } ``` 在上面的示例中,我们使用了`StreamReader`类的`ReadLine`方法逐行读取文件内容,并将其存储在一个`ArrayList`中。`StreamWriter`则用于将字符串写入文件。 ### 总结 以上介绍了两种使用C#读取TXT文件的方法:一种是利用`FileStream`直接操作二进制数据;另一种是使用`StreamReader`和`StreamWriter`操作文本数据。两种方法各有优势,选择哪种取决于具体的应用场景和需求。如果只需要简单地读取或写入文本文件,则推荐使用`StreamReader`和`StreamWriter`;而如果涉及到对文件的高级操作(例如文件定位等),则可以选择使用`FileStream`。
1、使用FileStream读写文件
文件头:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
读文件核心代码:
byte[] byData = new byte[100];
char[] charData = new char[1000];
try
{
FileStream sFile = new FileStream("文件路径",FileMode.Open);
sFile.Seek(55, SeekOrigin.Begin);
sFile.Read(byData, 0, 100); //第一个参数是被传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
}
catch (IOException e)
{
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(e.ToString());
Console.ReadLine();
return;
}
Decoder d = Encoding.UTF8.GetDecoder();
- djq20388692014-04-13恩跟我想的不太一样,不过也不错
- 粉丝: 10
- 资源: 12
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助