如何在 Windows 上读取大文本文件? [关闭]

Posted

技术标签:

【中文标题】如何在 Windows 上读取大文本文件? [关闭]【英文标题】:How to read large text file on windows? [closed] 【发布时间】:2010-10-25 04:37:10 【问题描述】:

我有一个很大的服务器日志文件 (~750 MB),我无法用记事本或 Notepad++ 打开它(他们都说文件太大)。

谁能推荐一个程序(适用于 Windows),一次只能将文件的一小部分读入内存?

或者我需要编写自己的应用程序来解析这个文件吗?

【问题讨论】:

记事本只是一个编辑控件。 :) 你的问题已经在这个问题中解决了:http://***.com/questions/159521/text-editor-to-open-big-giant-huge-large-text-files 重复***.com/questions/159521/… Best Free Text Editor Supporting *More Than* 4GB Files?的可能重复 见总指挥官。它可以立即读取任何文件。 【参考方案1】:

试试这个...

Large Text File Viewer

顺便说一句,它是免费的:)

但是,我认为您应该改为在 serverfault.com 上问这个问题

【讨论】:

服务器故障?它处于测试阶段。如何获得邀请?并感谢观众。工作一种享受。 FWIW,我刚刚尝试使用此应用打开一个 1.08GB 的​​ SQL 文件两次,但它在 Windows XP 上冻结了。 这会使用本地存储。在浏览器中试试这个jenson.in/demos/open_giant_files_in_browser.php 我认为链接坏了? 但是这个工具只显示几行。我将如何搜索大文件?【参考方案2】:

如果你只需要一个阅读工具,那么这个东西会立即打开文件http://www.readfileonline.com/

【讨论】:

效果很好,我不需要下载或安装任何东西:) 我用一个 20MB 的文本文件试了一下,结果坏了 本地文件的在线编辑器?认真的吗? @Win4ster 像 sublime/notepad++ 这样的本地应用程序加载这些文件的速度非常慢。我发现这个工具很方便快速扫描大文件。适用于非敏感数据。 @Win4ster 该页面声明该文件是通过javascript在本地加载的。我用一个 500mb 的文件尝试了它,它立即打开并显示分页移动..包括一个立即移动到文件末尾的分页。【参考方案3】:

用EmEditor,挺好用的,我用它打开了500mb以上的文件

【讨论】:

这个应用对我来说效果很好,但确实要花钱。 @MosquitoMike 30 天免费试用【参考方案4】:

Total Commander 的集成 Text-Viewer 可以毫无问题地打开大文件 (>10GB) 进行查看。它还提供不同的视图,例如十六进制视图。

【讨论】:

+1 它立即打开了我的 300Mb SQL 文件并立即搜索。由于界面有点棘手,我不得不发现如何打开文件查看器:只需选择文件并按 F3。 如何打开文本查看器? farmanager.com/index.php?l=en也【参考方案5】:

绝对是EditPad Lite

不仅在打开文件时非常快,而且像“全部替换”、修剪前导/尾随空格或将内容转换为小写等功能也非常快。

而且和Notepad++也很相似;)

【讨论】:

与所有其他工具(更不用说获胜者)相比,这是我最喜欢的。【参考方案6】:

我使用BareTail 来查看大型日志(一些 GB)已经有一段时间了,它运行得非常好而且速度非常快。有免费版和商业专业版。

他们有say

实时文件 优化的实时查看引擎查看任意大小 (> 2GB) 的文件 立即滚动到整个文件中的任意一点 通过网络查看文件 可配置的换行 可配置的 TAB 扩展 可配置字体,包括间距和偏移,以最大限度地利用屏幕空间

另一种选择是Far Manager。查看几个 GB 的文件没有问题(内存占用很小),但尝试在编辑模式下打开文本文件可能需要几个 GB 的 RAM,因此请注意这一点。我不知道可以在 Far 中查看/编辑的文件大小限制。

【讨论】:

感谢您的提示。 BareTail 对 52GB 文件没有任何问题,并且提供了非常灵敏的滚动。 Far Manager 也打开了文件,但它有一个古怪的文本终端用户界面。 FarManager 确实有点古怪,它的“编辑”功能需要加载整个文件......但为我解决了查看/搜索问题:) BareTail 是完美的,但它不允许编辑。【参考方案7】:

UltraEdit will do the trick.

【讨论】:

【参考方案8】:

我只是在Cygwin 之上使用less 来读取一个3GB 的文件,尽管我最终使用grep 来查找我需要的内容。

lessmore,但更好。)

有关less的更多详细信息,请参阅此答案:https://***.com/a/1343576/1005039

【讨论】:

【参考方案9】:

如果您可以编码,请编写控制台应用程序。这是你所追求的c#等价物。 你可以对结果做你想做的事(拆分、执行等):

SqlCommand command = null;
try

    using (var connection = new SqlConnection("XXXX"))
    
        command = new SqlCommand();
        command.Connection = connection;
        if (command.Connection.State == ConnectionState.Closed) command.Connection.Open();
        // Create an instance of StreamReader to read from a file.
        // The using statement also closes the StreamReader.
        using (StreamReader sr = new StreamReader("C:\\test.txt"))
        
            String line;
            // Read and display lines from the file until the end of 
            // the file is reached.
            while ((line = sr.ReadLine()) != null)
            
                Console.WriteLine(line);
                command.CommandText = line;
                command.ExecuteNonQuery();
                Console.Write(" - DONE");
            
        
    

catch (Exception e)

    // Let the user know what went wrong.
    Console.WriteLine("The file could not be read:");
    Console.WriteLine(e.Message);

finally

    if (command.Connection.State == ConnectionState.Open) command.Connection.Close();

【讨论】:

为什么需要 ADO.NET 从文件系统中读取文件?【参考方案10】:

我讨厌宣传自己的东西(嗯,不是真的),但PowerPad 可以打开非常大的文件。

否则,我会推荐一个十六进制编辑器。

【讨论】:

链接失效了。【参考方案11】:

虽然大文本文件查看器非常适合查看大文件(而且是免费的!),但如果文件是定界文件或固定宽度文件,那么您应该查看File Query。它不仅可以打开任何大小的文件(我个人打开了一个 280GB 的文件,但它可以变得更大),而且它还可以让您像在数据库中一样查询文件,找出您需要的任何类型的信息可以从中得到。

虽然它不是免费的,所以它更适合经常处理大文件的人,但如果您遇到一次性问题,您可以免费使用 30 天试用。

【讨论】:

【参考方案12】:

GnuUtils for Windows 也使这变得简单。该软件包中包含标准的 UNIX 实用程序,例如 cat、ls 等。我正在使用 cat 文件名 |更多地浏览一个 Notepad++ 根本无法打开的大文件。

【讨论】:

【参考方案13】:

你应该试试TextPad,它可以读取那个大小的文件。

可以免费评估(您可以无限期地评估)

【讨论】:

虽然这确实可以打开一个 750MB 的文件,但这不是一个好的答案,因为这个程序会尝试将整个文件加载到内存中,因此它的工作方式与尝试在记事本中打开文件一样好(即它会崩溃)。

以上是关于如何在 Windows 上读取大文本文件? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

GWT - 如何读取服务器上的(文本)文件(或:如何在 RemoteServiceServlet 中获取 servletContext)

如何在 Swing 中读取和显示大文本文件?

如何在 .NET 中读取大 (1GB) 文本文件?

我能够在 Windows(Visual C++)中读取 bin 文件,但不能在 linux(GCC)上读取 [关闭]

读取大文本文件VB6中的行数

如何提高java读取大文本文件的效率