我有一个 .txt 文件,其中包含 Pi 的 5 亿位二进制表示。
我需要在我的程序中使用它的字符串表示。我还需要能够在其中搜索子字符串等 - 换句话说,我需要能够将其视为正常大小的字符串。我会尝试找到很多子字符串,所以速度是必要的。
我最初的逻辑是简单地将字符串直接复制并粘贴到程序中并将其用作静态变量。但是我无法真正打开 .txt 文件,因此无法复制和粘贴。我的下一次尝试是从文件中读取整个字符串,但我不能在静态方法中执行此操作,而且它需要 WAAAY 太长时间(我实际上不知道确切需要多长时间,我最终关闭了程序)。
是否有可能做到这一点?任何帮助,将不胜感激。
编辑:潜在相关信息:
使用此代码:
/// <summary>
/// Gets a 500 million binary digit representation of Pi.
/// </summary>
public static string GetPi()
{
//as per http://msdn.microsoft.com/en-us/library/db5x7c0d.aspx
StreamReader piStream = new StreamReader(@"C:\binaryPi.txt");
string pi = "";
string line;
while ((line = piStream.ReadLine()) != null)
{
pi += line;
}
return pi;
}
我得到一个 OutOfMemoryException .. 所以扫描文件实际上似乎是不可能的,除非我遗漏了一些东西..