我有一个内存超过 2 GB 的 .txt 文件。问题是我无法使用记事本、记事本++ 或任何其他编辑器程序打开它。
有什么解决办法吗?
我有一个内存超过 2 GB 的 .txt 文件。问题是我无法使用记事本、记事本++ 或任何其他编辑器程序打开它。
有什么解决办法吗?
试试格洛格。快速、智能的日志浏览器。
我打开了大约2 GB大小的日志文件,搜索速度也很快。
写字板将打开任何文本文件,无论大小。但是,与文本编辑器相比,它的功能有限。
您可以使用工具将文本文件拆分为更小的块,而不是加载/读取完整的文件。如果您使用的是 Linux,则可以只使用split
命令(请参阅此 stackoverflow 线程)。对于 Windows,有几种可用的工具,例如HJSplit(请参阅此超级用户线程)。
我使用 UltraEdit 编辑大文件。我用 UltraEdit 打开的最大大小约为 2.5 GB。与 Notepad++ 相比,UltraEdit 也有一个很好的十六进制编辑器。
EmEditor 非常适合我。它是共享软件 IIRC,但在许可证到期后不会停止工作..
我总是使用010 Editor打开大文件。它可以轻松处理 2 GB。我正在使用 010 Editor处理50 GB的文件 :-)
它现在是商业的,但它有一个试用版。
如果您只需要阅读文件,我可以建议使用大文本文件查看器。 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
有相当多的工具可用于查看大文件。 http://download.cnet.com/Large-Text-File-Viewer/3000-2379_4-90541.html 例如这个。但是,我成功地在 Visual Studio 中查看了较大的文件。以为加载需要一些时间,它起作用了。
对于阅读和编辑,Geany for Windows是另一个不错的选择。我已经尝试限制 Notepad++ 的问题,但 Geany 还没有。