AppendDatatoByteArray目前,我正在从一个二进制文件(File.ReadAllBytes)中读取数据,将这个字节数组转换为一个字符串,并将附加的数据添加到这个字符串中。最后,我将字符串转换回字节数组并将数据写回新文件。是的-这种方法非常愚蠢,我一直很好奇是否有某种方法可以将这个新数据附加到字节数组的末尾(以字节为单位)。Strings=@"C:File.exe";字节b[]=File.ReadAllBytes(s);字符串NewString=ConvertToString(b[]);NewString=NewString+"一些数据";b[]=ConvertToByteArray(NewString);File.WriteAllBytes(b[]);//ConvertToByteArray和ConvertToString表示转换string>byte>string的函数。我想做什么:b[]=file.readallbytes(s)b=b+"newData"file.writeallbytes(b[])非常感谢对此事的任何见解。您应该习惯使用Streams-在这种情况下,您可以使用MemoryStream来实现完全相同的事情,而无需所有那些讨厌的数组。byte[]bytes=File.ReadAllBytes(inFilePath);using(MemoryStreamms=newMemoryStream()){//你也可以只使用StreamWriter来做"writer.Write(bytes)"ms.Write(bytes,0,bytes.Length);使用(StreamWriterwriter=newStreamWriter(ms)){writer.Write("SomeData");}File.WriteAllBytes(outFilePath,ms.ToArray());值得庆幸的是,这看起来比您的代码更复杂,但在幕后的工作效率更高。当然,如果你只是写入另一个文件(甚至同一个文件),你可以直接写入文件,根本不需要字节数组或MemoryStream——这就是流的美妙之处。使用列表,使用AddRange添加每个字节的初始ReadAllBytes,然后添加下一组字节。最后,使用CopyTo将所有字节复制到一个数组(大小为List.Length)。使用FileStream,查找文件末尾,然后写入您需要的内容:fs.Write(数据,0,数据长度);如果你真的需要读取整个文件,那么只需使用Array.Resize使你的缓冲区更大,然后复制你想要追加的部分。vardata=File.ReadAllBytes(s);Array.Resize(refdata,data.Length+toAppend.Length);Array.Copy(toAppend,0,data,data.Length-toAppend.Length,toAppend.Length);文件.WriteAllBytes(s,数据);抱歉,没有“速记”。:如果这一切的重点是追加一个字符串,只需使用File.AppendAllText!如果你只是想附加到文件,那么你应该使用FileStream和StreamWriter:))w.Write("新数据");或类似的东西。如果您只想附加一些字节:使用(varf=File.Open(@"C:File.exe",FileMode.Append)){byte[]buf=newbyte[]{69,65,66,67};f.Write(buf,0,buf.Length);}创建一个新数组,其大小是两个单独数组的总和,然后将数组复制到它。以上就是C#学习教程的全部内容:给字节数组追加数据,分享给大家。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
