如何阅读大约2 GB的文本文件?
我有一个.txt文件,其内存大于2 GB。 问题是我无法用记事本,记事本++或任何其他编辑器程序打开它。
任何解决scheme
您可以使用工具将文本文件拆分为更小的块 ,而不是加载/读取完整的文件。 如果你正在使用Linux,你可以使用split
命令(参见这个stackoverflow线程 )。 对于Windows,有像HJSplit 这样的可用工具(见这个超级用户线程 )。
写字板将打开任何文本文件,无论大小。 但是,与文本编辑器相比,它的function有限。
尝试Glogg 。 快速,智能的日志浏览器。
我已经打开大小约2 GB的日志文件, search速度也非常快 。
我使用UltraEdit来编辑大文件。 用UltraEdit打开的最大尺寸约为2.5GB。 与Notepad ++相比,UltraEdit也有一个很好的hex编辑器。
我总是使用010编辑器打开巨大的文件。 它可以轻松处理2 GB。 我正在用010编辑器处理50 GB的文件:-)
这是现在的商业,但它有一个试用版。
如果您只需要读取文件,我可以build议大文本文件查看器。 https://www.portablefreeware.com/?id=693
并提到这一点
文本编辑器打开大(巨大,巨大,大)的文本文件
否则,如果你想使自己的工具尝试这一点。 我认为你知道在C#中的文件stream读取器
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
EmEditor对我来说工作的很好。 这是共享软件IIRC,但不会在许可证过期后停止工作。
尝试Vim , emacs (如果以32位模式编译,则具有较低的最大缓冲区大小限制), hex工具
有相当数量的工具可用于查看大文件。 http://download.cnet.com/Large-Text-File-Viewer/3000-2379_4-90541.html这个例子。; 不过,我在Visual Studio中查看较大的文件时很成功。 认为它需要一些时间来加载,它的工作。
对于阅读和编辑, Geany for Windows是另一个不错的select。 我跑了限制与记事本++的问题,但尚未与Geany。