如何读取大约2GB 的文本文件?

我有一个。内存超过2GB 的 txt 文件。问题是我不能用记事本,记事本 + + 或任何其他编辑器程序打开它。

有什么办法吗?

601374 次浏览

有相当多的工具可用于查看大型文件。 Http://download.cnet.com/large-text-file-viewer/3000-2379_4-90541.html 比如这个。 但是,我成功地在 Visual Studio 中查看了较大的文件。

EmEditor 对我来说非常好用。它是一个共享软件 IIRC,但是在许可过期后仍然可以继续工作。

试试 维姆, Emacs (如果以32位模式编译,则具有较低的最大缓冲区大小限制) ,巫术工具

如果您只需要阅读文件,我可以建议大文本文件查看器。 Https://www.portablefreeware.com/?id=693

还有这个

文本编辑器打开大(巨大的,巨大的,巨大的)文本文件

否则,如果你想使自己的工具尝试这一点。我假设您知道 C # 中的文件流读取器

const int kilobyte = 1024;
const int megabyte = 1024 * kilobyte;
const int gigabyte = 1024 * megabyte;


public void ReadAndProcessLargeFile(string theFilename, long whereToStartReading = 0)
{
FileStream fileStream = new FileStream(theFilename, FileMode.Open, FileAccess.Read);
using (fileStream)
{
byte[] buffer = new byte[gigabyte];
fileStream.Seek(whereToStartReading, SeekOrigin.Begin);
int bytesRead = fileStream.Read(buffer, 0, buffer.Length);
while(bytesRead > 0)
{
ProcessChunk(buffer, bytesRead);
bytesRead = fileStream.Read(buffer, 0, buffer.Length);
}
}
}


private void ProcessChunk(byte[] buffer, int bytesRead)
{
// Do the processing here
}

请好好考虑一下

Http://www.codeproject.com/questions/543821/readplusbytesplusfrompluslargeplusbinaryplusfilepl

不需要加载/读取完整的文件,您可以使用一个工具来 将文本文件分成小块。如果您正在使用 Linux,您可以只使用 split命令(参见 这个堆栈溢出线程)。对于 Windows,有几个工具可用,如 HJSplit(参见 这个超级用户线程)。

WordPad 将打开任何文本文件,无论大小。但是,与文本编辑器相比,它的能力有限。

对于阅读和编辑,< strong > Geany for Windows是另一个不错的选择。我已经尝试过用 Notepad + + 来限制问题,但是还没有用 Geany。

我总是使用 010编辑打开巨大的文件。它可以轻松处理2GB。我用010编辑器操作 50GB文件: -)

现在已经商业化了,不过还有试用版。

我使用 UltraEdit 编辑大文件。使用 UltraEdit 打开的最大大小约为2.5 GB。与记事本 + + 相比,UltraEdit 还有一个很好的十六进制编辑器。

试试 < strong > Glogg 。 快速、智能的日志浏览器。

我已经打开了大小在 2GB左右的日志文件,以及 搜索速度也很快