我使用.ToArray()
方法我的字符串转换为char
数组,其大小我使char[] buffer = new char[1000000];
但是当我使用以下代码:ToArray的()函数限定
using (StreamReader streamReader = new StreamReader(path1))
{
buffer = streamReader.ReadToEnd().ToCharArray();
}
// buffer = result.ToArray();
threadfunc(data_path1);
的缓冲区的大小得到固定达到8190,即使使用.ToCharArray()
或.ToArray()
后也不会读取整个文件。 这是什么原因.ToCharArray()
或.ToArray()
有尺寸限制?就像我不使用这个函数一样,我能够以字符串格式读取整个文件,但是当试图通过使用这个函数将它转换为char数组时,我受到了大小的限制。
你会尝试分离'ReadToEnd()'和'ToCharArray()'的调用。 (即把第一个结果放在一个字符串中,然后再调用字符串中的第二个)。 – Emad
用'ToCharacterArray'获得字符的方式......你可以声明没有大小的数组'buffer'在阅读时将被调整到正确的大小。换句话说'char [] buffer;'将起作用。 – JohnG
[ToCharArray()](https://referencesource.microsoft.com/#mscorlib/system/string.cs,81c2d980f5d0ee35,references)将整个字符串转换为字节数组。它对生成的数组的大小没有限制。 – Serge