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

时间:2013-08-13 11:58:12

标签: text-files notepad++ openoffice-writer

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

任何解决方案?

10 个答案:

答案 0 :(得分:135)

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

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

答案 1 :(得分:91)

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

答案 2 :(得分:47)

您可以使用工具以较小的块分割文本文件,而不是加载/读取整个文件。如果您使用的是Linux,则可以使用 split 命令(请参阅this stackoverflow thread)。对于Windows,有几种工具可用,如 HJSplit (参见this superuser thread)。

答案 3 :(得分:11)

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

答案 4 :(得分:9)

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

答案 5 :(得分:9)

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

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

答案 6 :(得分:8)

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

并参考此

Text editor to open big (giant, huge, large) text files

否则,如果您想制作自己的工具,请试试这个。我认为你知道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

答案 7 :(得分:4)

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

答案 8 :(得分:2)

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

答案 9 :(得分:2)

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