OutOfMemoryException文件的内容

时间:2014-08-11 14:22:33

标签: c#

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

 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);
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:4)

您可以使用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;
        }
    }
}