关于notepad ++:如何读取大约2 GB的文本文件?

How do I read a text file of about 2 GB?

本问题已经有最佳答案,请猛点这里访问。

我有一个.txt文件,其内存超过2GB。 问题是我无法用NotepadNotepad++或任何其他编辑器程序打开它。

有解决方案吗


试试Glogg。
快速,智能的日志浏览器。

我打开了大小约2 GB的日志文件,搜索速度也非常快。


无论大小如何,写字板都会打开任何文本文件。但是,与文本编辑器相比,它的功能有限。


您可以使用工具将文本文件拆分为较小的块,而不是加载/读取整个文件。如果您使用的是Linux,则可以使用split命令(请参阅此stackoverflow线程)。对于Windows,有几种工具可用,如HJSplit(请参阅此超级用户线程)。


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


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

它现在已商业化,但它有试用版。


EmEditor对我来说效果很好。它是共享软件IIRC,但在许可证到期后不会停止工作。


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

并且也参考这个

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

否则,如果您想制作自己的工具,请试试这个。我认为你知道c#中的文件流阅读器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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


试试Vim,
emacs(如果在32位模式下编译,则具有较低的最大缓冲区大小限制),十六进制工具


对于阅读和编辑,Geany for Windows是另一个不错的选择。我试图限制Notepad ++的问题,但还没有使用Geany。


有很多工具可用于查看大文件。
http://download.cnet.com/Large-Text-File-Viewer/3000-2379_4-90541.html
这就是这个例子。
但是,我在Visual Studio中查看较大的文件是成功的。认为它需要一些时间来加载,它工作。