How do I read a text file of about 2 GB?
我有一个.txt文件,其内存超过2GB。 问题是我无法用Notepad,Notepad++或任何其他编辑器程序打开它。
有解决方案吗
-
是否有一些很好的理由为什么所有文本编辑器都无法打开任意大文件?
-
我不认为这是重复的 - 其他问题要求文本编辑器。这是在寻找一个文本阅读器。当然存在重叠(编辑器可以用作读者),但解决方案可以是不同的。
-
只有SO社区能够理解:P
-
@endolith是的。它与编辑器处理数据的方式有关。实际上只有几种方法可以将所有数据加载到内存中或部分加载。最简单的方法是加载到内存中,但是对于文件的大小可以打开会有一些限制。为了没有限制,编辑器需要提出一个方案来加载子集以便在时间,提供大型数据集的小视口,并管理视口移动时从磁盘交换内存。然后,您还必须处理小视图之外的搜索,替换等范围。
-
我要大喊:"呃,这不是因为Notepad ++,而是因为你正在使用一个32位编辑器"。事实证明,在愚弄自己之前尝试是明智的。我正在使用Notepad ++ 64位,它也无法打开大于2GB的文件......
-
使用UltraEdit
试试Glogg。
快速,智能的日志浏览器。
我打开了大小约2 GB的日志文件,搜索速度也非常快。
-
请注意,这是一个READ ONLY编辑器!
-
我可以用Glogg快速打开超过2 GB的文件,Notepad ++和写字板都不能打开(或任何其他标准文本编辑器)。谢谢!
-
拯救了我的生命:巨大的日志文件上的正则表达式和彩色过滤非常棒!
-
IMO - 这应该是公认的答案。尽管Glogg是一个读者而不是一个编辑器,但是OP要求读取大文本文件。
-
我设法运行Glogg无权在我的Windows笔记本电脑上安装程序,如下所示:下载Windows安装程序exe而不是执行安装程序exe,将其解压缩(例如7-Zip)。在解压缩的根文件夹中,运行glogg.exe
-
没有使用6gb文件。错误的行数。 download.cms.gov/nppes/NPI_Files.html - >顶级zip文件包含一个6GB的csv电子表格。
-
@BuvinJ它不是一个编辑器,如果它是只读的...
-
@ cascading-style好的,它是一个"观众"...如果这就是你所需要的,这是一个很酷的程序。
-
它太快了,太聪明了。谢谢
-
我试过了。它真的很快。
-
Glogg上+1。它不仅可以轻松处理大型文件,还可以在Linux和MacOS中使用免费软件。
-
在更大的文件中搜索有很多问题,我没有得到任何结果。较小的工作正常。
-
这是一个很好的工具。它帮助我轻松快速地打开大尺寸文件。谢谢
-
强烈推荐,它对我有用。这是每个人都应该使用大型日志文件。
-
改变了答案。
-
这个也适用于大文件firstobject.com/dn_editor.htm,它还有一些其他功能,如自动缩进,XML验证等。我用它来搜索大文件。
-
我可以用这个来编辑我的文件吗?
无论大小如何,写字板都会打开任何文本文件。但是,与文本编辑器相比,它的功能有限。
-
+1 @Kiki。我只是使用写字板打开一个记事本++不能的1.2G文件。
-
@Joe这回答了原来的问题。我不同意Kiki的唯一地方是写字板是一个文本编辑器。
-
我尝试打开一个1.4 Gb json文件,它只是挂起,没有打开。
-
4.3GB文件无法在写字板中加载
-
不是这样 - 它在52GB的文本文件上窒息。
-
我能够在写字板中打开一个对于Notepad ++来说太大的文件,但它锁定了尝试查找并替换所有文件。
-
请记住您的机器有多少内存。不能期望在没有大量RAM的情况下加载52GB文件:P
-
@RobertM。智能程序不会立即将整个内容加载到内存中。在具有4 GB RAM的计算机上加载52 GB文件是完全可能的。
-
我同意@Millie Smith的观点。在80年代早期,WordStar确实打开了大小不适合内存的文件。它只是巧妙地使用内部分页所需要的东西。您甚至可以使用Windows中的FileSystemObject执行自己的文本阅读器基本实现。
-
@MillieSmith 1)我在哪里说这是不可能的(虽然该死的几乎不可能在加载后使用)2)写字板不是我称之为智能应用程序:P
-
@RobertM 1)"不能指望在没有大量RAM的情况下加载52GB文件"。 2)如果是x表示你做y,那并不意味着做y会自动使你成为x。我假设你说Wordpad将文件分片加载。这并不能让它变得聪明。一个聪明的应用程序会这样做。不是说Wordpad还不错。它在我的机器上窒息160 MB(记事本++)
-
当Notepad ++失败时,我最终到了这里。为了将来参考,我的(仅)1GB文件在写字板中很好地加载(令我惊讶的是)和wordpad,exe目前几乎完全(略微超过)2GB的工作集和峰值工作集,所以我猜你在备用RAM中至少需要两倍的文件大小才能打开文件。
-
Wordpad和Notepad ++窒息。我打开~3GB。
-
在RAM中加载文件很糟糕的大文件。
-
写字板无法在具有16GB RAM的计算机中打开1GB纯文本文档。至少Notepad ++非常清楚地表明它无法打开文件。
-
是的...写字板??只是在一个27 GB的文件上窒息而Glogg可以做到这一点。也许它曾经更好但不是win10版本。我的电脑有16GB的RAM和足够的磁盘空间BTW。
-
写字板无法打开我的2Gb文本文件 - 但UltraEdit可以快速轻松地打开/编辑/保存。
您可以使用工具将文本文件拆分为较小的块,而不是加载/读取整个文件。如果您使用的是Linux,则可以使用split命令(请参阅此stackoverflow线程)。对于Windows,有几种工具可用,如HJSplit(请参阅此超级用户线程)。
-
HJSplit适合我。根据wiki sourceforge文档:"较新版本(5.2+)将拒绝打开文件并发出错误消息。为什么会这样?Notepad ++基于一个组件(Scintilla),该组件旨在提供富文本查看,语法高亮和代码折叠,而不是批量文本服务。有必要的权衡。加载200MB文件将需要大约800MB的内存,操作系统可能会对内存分配请求不满意。"
我使用UltraEdit编辑大文件。我用UltraEdit打开的最大大小约为2.5 GB。与Notepad ++相比,UltraEdit还有一个很好的十六进制编辑器。
-
UltraEdit可以编辑任何大小的文件,与安装的RAM大小无关。在安装了2 GB RAM的计算机上编辑超过8 GB的文件没有问题。为了使用UE高效编辑大型文件,应根据电源提示:大文件文本编辑器中的说明从默认值更改某些配置。
-
今天我尝试使用7.6 GB的文件。它工作正常,但只有在更改配置后,"打开没有临时文件的文件..."(在文件处理→临时文件中)。
我总是使用010 Editor来打开巨大的文件。它可以轻松处理2GB。我用010编辑器操作50GB的文件:-)
它现在已商业化,但它有试用版。
-
它不是免费的。
-
我想是的。回到2015年6月:-)无论如何,它有单次读取的试用期+我打赌它仍然能很好地工作。最近没有机会使用它。
-
嗨,你有什么想法编写这个编辑器的语言?
-
@ ?? Q 10 ZO ???我最大的赌注是C / C ++,但这只是对我在网站上发现的关于相关事情的作者和文档的总体印象。
-
是的,这是最好的:-)
EmEditor对我来说效果很好。它是共享软件IIRC,但在许可证到期后不会停止工作。
-
我现在在家测试了一个试用版的EmEditor,我印象深刻,我也打算在2月份开始试用它。然后买它。
-
但后来我有更多的需求,如编码更改,并进行认真的编辑。我的数据文件不是日志文件。
-
为EmEditor投票 - 我们一直使用它,非常值得!它打开了许多演出的文件。
如果您只需要阅读文件,我可以建议大文本文件查看器。
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
-
大文本文件查看器无法打开我的2.5GB json文件,变得没有响应。
试试Vim,
emacs(如果在32位模式下编译,则具有较低的最大缓冲区大小限制),十六进制工具
对于阅读和编辑,Geany for Windows是另一个不错的选择。我试图限制Notepad ++的问题,但还没有使用Geany。
-
我因为这个评论而下载了geany(所以我没有别的可以对它说好或坏),但它不会打开我的~3.3 GB文件。
-
我无法使用geany打开2.9 GB的文件,但是我的计算机本身缺乏资源。我最终使用命令行type filename |more来加载我需要的内容。现在我创建了一个2GB的文件并且有同样的问题,所以显然Geany不是这里的答案
-
我既不能打开680mb文件。
有很多工具可用于查看大文件。
http://download.cnet.com/Large-Text-File-Viewer/3000-2379_4-90541.html
这就是这个例子。
但是,我在Visual Studio中查看较大的文件是成功的。认为它需要一些时间来加载,它工作。