c# - Visual Studio 2012 Express 对读取大文件有限制吗?

标签 c# visual-studio-2012

这是我读取文本文件的代码,该文件恰好大于 1GB 并且以竖线分隔:

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string strFilePath = @"C:\Users\Me\Desktop\123.txt";

        private void button1_Click(object sender, EventArgs e)
        {
            var arrRawData = File.ReadLines(strFilePath).Select(line => line.Split('|')).ToArray();
        }
    }
}

当我点击按钮时出现这个错误:

"System.OutOfMemoryException' occurred in mscorlib.dll"

我有 16GB 的 RAM...我做错了什么?

最佳答案

您的程序在 32 位模式下运行。这将永远不允许读取超过 650 兆字节的数据,这大约是地址空间中可用的最大尺寸空洞。

项目 + 属性,构建选项卡,取消选中“首选 32 位”选项。

请注意,几乎所有解析文件数据的应用程序都不需要使用这么多内存。使用 StreamReader 类一次只读一行。

关于c# - Visual Studio 2012 Express 对读取大文件有限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14266823/

相关文章:

c# - 具有大量 HDI 参数的多态抽象类

c# - Ajax 发布不工作 MVC 5

c++ - VS 2012/VC11 中的对齐和 STL

c# - 如何在 UIThread 上测试 Prism 事件聚合器订阅?

c# - 如何在 XmlDocument 中插入 DOCTYPE 元素

c# - IMvcBuilder AddJsonOptions 在.Net Core 3.0 中去了哪里?

c++ - 二进制文件流到字节 std::vector 跳过空格

c++ - 如何在 VS C++ 中使用 IA32 指令 'fabs'?

web - 发布 Web 向导未按照 Microsoft 的说明出现

visual-studio-2010 - 查找VS2012项目中有多少行代码