增加Console.Readline的缓冲区?

时间:2015-01-30 21:36:23

标签: .net console.readline

我有一行约1.5kb的文字。我希望我的控制台应用程序能够读取它,但只能粘贴前255个字符。如何增加此限制?我在Visual Studio 2013

下的调试模式下使用Console.ReadLine()读取它

2 个答案:

答案 0 :(得分:2)

来自MSDN这样的事应该起作用:

Stream inputStream = Console.OpenStandardInput();
byte[] bytes = new byte[1536];    // 1.5kb
int outputLength = inputStream.Read(bytes, 0, 1536);

您可以将字节数组转换为字符串,例如:

var myStr = System.Text.Encoding.UTF8.GetString(bytes);

答案 1 :(得分:2)

这已经讨论过几次了。让我向您介绍我到目前为止看到的最佳解决方案(Console.ReadLine() max length?

概念:使用OpenStandartInput验证readline函数(就像上面提到的评论中的人一样):

实施

private static string ReadLine()
{
    Stream inputStream = Console.OpenStandardInput(READLINE_BUFFER_SIZE); // declaring a new stream to read data, max readline size
    byte[] bytes = new byte[READLINE_BUFFER_SIZE]; // defining array with the max size
    int outputLength = inputStream.Read(bytes, 0, READLINE_BUFFER_SIZE); //reading
    //Console.WriteLine(outputLength); - just for checking the function
    char[] chars = Encoding.UTF7.GetChars(bytes, 0, outputLength); // casting it to a string
    return new string(chars); // returning
}

通过这种方式,您可以从控制台获得最大的收益,并且它的工作时间超过1.5 KB。