C# 逐块读取文本文件

C# 逐块读取文本文件,c#,file-io,C#,File Io,我正在使用C#net 如何可以逐块读取文本文件,该块由新行字符分隔 块大小不是固定的,所以我不能使用StreamReader的ReadBlock方法 有没有其他方法可以逐块获取数据,因为数据由新行字符分隔。您可以使用: 此方法逐行读取文本文件(其中Environment.NewLine用作行分隔符),并且一次只在内存中加载当前行,因此可以使用它读取非常大的文件 如果只想在内存中加载小文本文件的所有行,也可以使用以下方法: 您可以使用: 此方法逐行读取文本文件(其中Environment.NewL

我正在使用C#net

如何可以逐块读取文本文件,该块由新行字符分隔

块大小不是固定的,所以我不能使用StreamReader的ReadBlock方法

有没有其他方法可以逐块获取数据,因为数据由新行字符分隔。

您可以使用:

此方法逐行读取文本文件(其中Environment.NewLine用作行分隔符),并且一次只在内存中加载当前行,因此可以使用它读取非常大的文件

如果只想在内存中加载小文本文件的所有行,也可以使用以下方法:

您可以使用:

此方法逐行读取文本文件(其中Environment.NewLine用作行分隔符),并且一次只在内存中加载当前行,因此可以使用它读取非常大的文件

如果只想在内存中加载小文本文件的所有行,也可以使用以下方法:

比如:

using (TextReader tr = new StreamReader(FullFilePath))
{
  string Line;
  while ((Line = tr.ReadLine()) != null)
  {
    Line = Line.Trim();
  }
}
有趣的是,前几天我做了一些文件I/o,发现这在处理大型分隔记录文本文件时非常有用(例如,将记录转换为您自己定义的预定义类型)

类似于:

using (TextReader tr = new StreamReader(FullFilePath))
{
  string Line;
  while ((Line = tr.ReadLine()) != null)
  {
    Line = Line.Trim();
  }
}

有趣的是,前几天我做了一些文件I/o,发现这在处理大型分隔记录文本文件时非常有用(例如,将记录转换为您自己定义的预定义类型)

您可以查看
StreamReader.ReadToEnd()
String.Split()

使用:


您可以查看
StreamReader.ReadToEnd()
String.Split()

使用:

你可以用这个方法

ReadLines
返回一个
IEnumerable
,因此一次只在内存中存储一行。

您可以使用该方法


ReadLines
返回一个
IEnumerable
,因此一次只能在内存中存储一行。

使用StreamReader.ReadLine()方法。使用StreamReader.ReadLine()方法。当只有一个方法允许您这样做时,为什么还要经历这些痛苦呢?哦,你说得对。我以前没有注意到这一点。好吧,没用的回答。虽然,我的方法可以将文件分割成由任何分隔符分隔的块。当只有一个方法允许你这样做时,为什么还要经历这些痛苦呢?哦,你说得对。我以前没有注意到这一点。好吧,没用的回答。尽管如此,我的方法可以将文件分割成由任何分隔符分隔的块。
using (TextReader tr = new StreamReader(FullFilePath))
{
  string Line;
  while ((Line = tr.ReadLine()) != null)
  {
    Line = Line.Trim();
  }
}
string content = stream.ReadToEnd();
string[] blocks = content.Split('\n');//You may want to use "\r\n"
foreach(string line in File.ReadLines(path))
{
   //do something with line
}