读取大TXT文件,内存不足异常

2024-03-02

我想读取大小为500MB的大文本文件, 首先我使用

var file = new StreamReader(_filePath).ReadToEnd();  
var lines = file.Split(new[] { '\n' });

但它抛出内存不足异常然后我尝试逐行读取,但在读取大约 150 万行后再次抛出内存不足异常

  using (StreamReader r = new StreamReader(_filePath))
         {            
             while ((line = r.ReadLine()) != null)            
                 _lines.Add(line);            
         }

或者我用过

  foreach (var l in File.ReadLines(_filePath))
            {
                _lines.Add(l);
            }

但我再次收到

发生“System.OutOfMemoryException”类型的异常 mscorlib.dll 但未在用户代码中处理

我的机器功能强大,内存为 8GB,所以这不应该是我的机器问题。

p.s:我尝试在 NotePad++ 中打开此文件,但收到“文件太大而无法打开”异常。


只需使用文件.ReadLines http://msdn.microsoft.com/en-us/library/dd383503.aspx它返回一个IEnumerable<string>并且不会立即将所有行加载到内存中。

foreach (var line in File.ReadLines(_filePath))
{
    //Don't put "line" into a list or collection.
    //Just make your processing on it.
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取大TXT文件,内存不足异常 的相关文章

  • 在 OpenCL 中将函数作为参数传递

    是否可以在 OpenCL 1 2 中将函数指针传递给内核 我知道可以用C实现 但不知道如何在OpenCL的C中实现 编辑 我想做这篇文章中描述的同样的事情 在 C 中如何将函数作为参数传递 https stackoverflow com q
  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • 如何在 VS 中键入时显示方法的完整文档?

    标题非常具有描述性 是否有任何扩展可以让我看到我正在输入的方法的完整文档 我想查看文档 因为我可以在对象浏览器中看到它 其中包含参数的描述和所有内容 而不仅仅是一些 摘要 当然可以选择查看所有覆盖 它可能是智能感知的一部分 或者我不知道它并
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 通过不同 DLL 或 EXE 中的指针或引用访问 STL 对象时发生访问冲突

    我在使用旧版 VC6 时遇到以下问题 我只是无法切换到现代编译器 因为我正在处理遗留代码库 http support microsoft com kb 172396 http support microsoft com kb 172396
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • UWP 无法在两个应用程序之间创建本地主机连接

    我正在尝试在两个 UWP 应用程序之间设置 TCP 连接 当服务器和客户端在同一个应用程序中运行时 它可以正常工作 但是 当我将服务器部分移动到一个应用程序并将客户端部分移动到另一个应用程序时 ConnectAsync 会引发异常 服务器未
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • Silverlight Datagrid:在对列进行排序时突出显示整个列

    我的 Silverlight 应用程序中有一个 DataGrid 我想在对该列进行排序时突出显示整个列 它在概念上与上一个问题类似 Silverlight DataGrid 突出显示整列 https stackoverflow com qu
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • 如何检测 C# 中该字典键是否存在?

    我正在使用 Exchange Web 服务托管 API 和联系人数据 我有以下代码 即功能性的 但并不理想 foreach Contact c in contactList string openItemUrl https service
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • Swagger 为 ASP.CORE 3 中的字典生成错误的 URL

    当从查询字符串中提取的模型将字典作为其属性之一时 Swagger 会生成不正确的 URL 如何告诉 Swagger 更改 URL 中字典的格式或手动定义输入参数模式而不自动生成 尝试使用 Swashbuckle 和 NSwag 控制器 pu
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12

随机推荐

  • 访客模式中的泛型杀伤力过大

    我正在开发一个项目 将十年前编写的旧 java 1 2 代码转换为 java 7 该项目大量 过度 使用特定访问者 为了使事情在概念上简单 我们假设访问者是这样的 public interface RobotVisitor public O
  • Google Chrome 调试器跳过断点

    我目前正在尝试在 chrome 中调试 js 脚本 我在脚本中放置了一个断点 当我仅使用一个选项卡时 它会正确中断 但在第二个选项卡上 即使我在代码中看到断点 它也不会中断 查看源代码时是否使用了漂亮的打印选项 我注意到格式化的副本可能会不
  • 有非官方的 Flash .FLA 规范吗?

    是否有非官方规范解释如何对 Flash FLA 文件进行逆向工程 我对创建一个应用程序特别感兴趣 该应用程序可以通过编程方式 自动场景规划 Flash 文档 从其他文件中提取内容 将该内容排列到图层中 而无需打开 Flash IDE 然后动
  • 使用 IB 将分段控件添加到导航栏

    我目前正在创建一个UISegmentedControl以编程方式在视图控制器中viewDidLoad方法并将其分配给视图控制器的导航栏self navigationItem titleView 这很简单 但我也希望能够在 Interface
  • 与 pypi.org 的连接超时

    无法 pip 安装 3rd 方软件包 venv pip install django Collecting django Retrying Retry total 4 connect None read None redirect None
  • 使用 R Lubridate 提取会计年度

    我将创建几个日期 library lubridate x lt ymd c 2012 03 26 2012 05 04 2012 09 23 2012 12 31 我可以从中提取年份和季度x values quarter x with ye
  • 如何创建文件选择器以使用 REST API 将文件保存到 Google Drive?

    现在谷歌是不赞成 https developers google com drive android deprecationGoogle Drive Android API 我正在将代码迁移到 Drive REST API 我几乎已经完成了
  • 如何正确使用WriteConsoleOutputAttribute函数

    为什么下面的代码 const std string text str HANDLE stdout handle GetStdHandle STD OUTPUT HANDLE COORD coords 0 0 DWORD written 0
  • 如何强制子div的高度为父div高度的100%而不指定父div的高度?

    我有一个具有以下结构的网站 div div div div div div div div div div 导航位于左侧 内容 div 位于右侧 内容div的信息是通过PHP拉入的 所以每次都是不同的 如何垂直缩放导航 使其高度与内容 di
  • 如何仅显示多类别绘图条形图的类别刻度并旋转它们

    我希望不使用plotly graph objects 在多类别条形图中显示内部类别标签 此外 我希望旋转外部类别标签的标签 这是我的代码 import pandas as pd import plotly graph objects as
  • R 中多列的聚合和加权平均值

    问题基本上是这样的 R 中的聚合和加权平均值 https stackoverflow com questions 3367190 aggregate and weighted mean in r 但我希望它使用 data table 在几列
  • 如何在 laravel 或 php 中动态更改 php dotenv (.env) 变量?

    我想要这样的东西 env APP ENV setenv APP ENV testing env APP ENV Output staging testing 我找到一个答案如何在 Laravel 中动态更改 env 文件中的变量 https
  • Java 中的通用 Fluent Builder

    我知道也有过类似的问题 但我还没有看到我的问题的答案 我将用一些简化的代码来展示我想要的东西 假设我有一个复杂的对象 它的一些值是通用的 public static class SomeObject
  • Django 身份验证适用于 Chrome,但不适用于 Firefox

    我遇到了一个问题 Django 的登录在 Chrome 上工作正常 但在 Firefox 上却不行 当尝试在 Firefox 上登录网站的受限部分时 它只是一次又一次地循环回到登录页面 此外 日志上没有出现与此相关的错误消息 有趣的是 当服
  • 为什么 Rails 给出“无法验证 CSRF 令牌真实性”错误?

    我在 Rails 生产中收到 无法验证 CSRF 令牌真实性 的消息 我的问题是 它为什么要这样做 我该如何修复它 这是我的 Heroku 日志 一些值已匿名 2016 02 13T01 18 54 118956 00 00 heroku
  • 如何将 COUNTIF 与 OR 结合起来

    在 Google 电子表格中 我需要使用COUNTIF在具有多个条件的范围上运行 所以在下表中 我需要有类似的东西 COUNTIF B B Mammal or Bird 并返回值 4 A B Animal Type Dog Mammal C
  • 通过 python 或 php 从 gmail 获取附件

    我一直在尝试查找有关如何使用 python 或 PHP 从 gmail 帐户检索附件的信息 我希望这里有人可以提供一些帮助 谢谢 Related 如何从 Gmail 下载所有带附件的电子邮件 https stackoverflow com
  • 如何在android中的表格布局行中显示结果列表?

    我在 Android 中将列表数据显示到 TextView 时遇到了一点问题 我的情况是我有一个表格布局与默认一TableRow 在表格行内 我已被创建新线性布局 然后 四TextView里面创建的线性布局 我向这个文本视图添加了一些默认值
  • Symfony2:发送 HTTP 请求

    我正在尝试从我的一个控制器发出 HTTP 请求来联系另一个 URL 目标是联系另一个 URL 并简单地在我的页面中打印 HTML 答案 我试过 r new Request r gt create http www google com GE
  • 读取大TXT文件,内存不足异常

    我想读取大小为500MB的大文本文件 首先我使用 var file new StreamReader filePath ReadToEnd var lines file Split new n 但它抛出内存不足异常然后我尝试逐行读取 但在读