我需要在 C# 中从控制台加载非常长的行,最多 65000 个字符。Console.ReadLine 本身有 254 个字符的限制(转义序列 +2),但我可以使用这个:
static string ReadLine()
{
Stream inputStream = Console.OpenStandardInput(READLINE_BUFFER_SIZE);
byte[] bytes = new byte[READLINE_BUFFER_SIZE];
int outputLength = inputStream.Read(bytes, 0, READLINE_BUFFER_SIZE);
Console.WriteLine(outputLength);
char[] chars = Encoding.UTF7.GetChars(bytes, 0, outputLength);
return new string(chars);
}
...为了克服这个限制,最多 8190 个字符(转义序列 +2) - 不幸的是,我需要输入更大的行,当 READLINE_BUFFER_SIZE 设置为大于 8192 时,错误“没有足够的存储空间可供处理此命令”显示在 VS 中。缓冲区应设置为 65536。我已经尝试了几种解决方案来做到这一点,但我仍在学习,没有一个超过 1022 或 8190 个字符,我怎样才能将该限制增加到 65536?提前致谢。