OutOfMemoryException文件内容

本文关键字:文件 OutOfMemoryException | 更新日期: 2023-09-27 18:17:41

我有以下代码加载文件的内容到内存,但我想要一个更好的方式,因为我得到以下错误

 Unhandled Exception: OutOfMemoryException.

是否有更有效的方法来处理这个问题?我要浏览的大多数文件都是1.85 GB

 class Program
{
    public static string sDate;
    public static string sTerm;
    static void Main(string[] args)
    {
        Console.WriteLine("Enter the date to search - yyyy-mm-dd");
        sDate = Console.ReadLine();
        Console.WriteLine("Enter search term");
        sTerm = Console.ReadLine();
        DirectoryInfo di = new DirectoryInfo(Environment.GetEnvironmentVariable("ININ_TRACE_ROOT") + "''" + sDate + "''");
        FileInfo[] files = di.GetFiles("*.ininlog");
        foreach (FileInfo file in files)
        {
            using (StreamReader sr = new StreamReader(file.FullName))
            {
                string content = sr.ReadToEnd();
                if (content.Contains(sTerm))
                {
                    Console.WriteLine("{0} contains'"{1}'"", file.Name, sTerm);
                }
            }
        }
    }
}

OutOfMemoryException文件内容

您可以使用StreamReader.ReadLine逐行处理文件。

using (StreamReader sr = new StreamReader(file.FullName))
{
    string line;
    while((line = sr.ReadLine()) != null)
    { 
        if (line.Contains(sTerm))
        {
            Console.WriteLine("{0} contains'"{1}'"", file.Name, sTerm);
            break;
        }
    }
}