Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字节[]转换为字符串的最快方法?_C#_Unity3d_Bytearray_Unityscript - Fatal编程技术网

C# 将字节[]转换为字符串的最快方法?

C# 将字节[]转换为字符串的最快方法?,c#,unity3d,bytearray,unityscript,C#,Unity3d,Bytearray,Unityscript,我需要将字节[]转换为C#和Unity格式的字符串,而不会每秒损失太多帧。我目前正在使用WWW类获取文本文件,但是当我使用WWW.text时,由于文件太大,导致FPS下降。是否有任何方法可以增量转换,而不会延迟太长时间 WWW file = new WWW(path); yield return file; string text= file.text; 我用它来读取一个完整的文件(one.OBJ),我需要读取所有的文本。行对行或所有文本对一个字符串进行拆分。为了阅读文本而不插入FPS,我做了

我需要将字节[]转换为C#和Unity格式的字符串,而不会每秒损失太多帧。我目前正在使用WWW类获取文本文件,但是当我使用WWW.text时,由于文件太大,导致FPS下降。是否有任何方法可以增量转换,而不会延迟太长时间

WWW file = new WWW(path);
yield return file;
string text= file.text;
我用它来读取一个完整的文件(one.OBJ),我需要读取所有的文本。行对行或所有文本对一个字符串进行拆分。为了阅读文本而不插入FPS,我做了这个

WWW file = new WWW(path);
yield return file;
byte[] text= file.bytes;
如果文件太大,WWW.text,drop FPS,那么我需要使用WWW.bytes。在Unity中,返回null;处理另一帧。若流程需要太多时间来执行,则删除FPS(在WWW.text的情况下)

Ex file:

请尝试以下方法:

WWW file = new WWW(path);
while(!file.isDone)
{
    yield return new WaitForSeconds(0.1f);
}
string text = file.text;

我猜WWW在内部将请求结果存储为字节数组,并在访问
文本
字段时将其转换为字符串(那么这真的是字段吗?)

因此,无论如何,将字节转换为字符串都需要分配内存并使用正确的编码来处理字节数组

最好是直接从字节数组中提取数据,而不首先将其转换为大字符串

编辑

或者,您可以将字节数组包装在
MemoryStream
中,然后使用适当的编码将其再次包装在
StreamReader
中(我想OBJ文件是纯ASCII文件)

您的文件将在读取时进行增量转换


在您的处理循环中使用
yield
模式,这应该很好

那么,您想如何转换它?字符串和字节数组是完全不同的。文件实际上是文本,还是二进制数据?是文本文件,但是联机url。例:
产量
用途很奇怪。。。看起来像一个
等待
。在unity中是一个独立的线程。然后使用
yield return null
处理另一帧。另一种形式是
WWW文件=新的WWW(路径);而(!file.isDone){yield return null;}byte[]text=file.bytes我认为这是一个解决方案,但是,如何每次提取一行。如果平台上有StringReader,请使用它。is.Net Framework 3.5,但我需要在一个字节数组中读取一行。不是一个字符串。@user3541917在数组中搜索下一个等于13的字节(回车)。一个缓慢的过程是
string text=file.text