我有一行约1.5kb的文字。我希望我的控制台应用程序能够读取它,但只能粘贴前255个字符。如何增加此限制?我在Visual Studio 2013
下的调试模式下使用Console.ReadLine()读取它答案 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。