C# 从文件中拆分结果。ReadAllBytes

C# 从文件中拆分结果。ReadAllBytes,c#,arrays,C#,Arrays,这里的代码读取图像的所有字节,并将其存储在字节数组中。有没有办法将这些字节转换成ascii码,然后将它们分割成512个字符(ascii字符)长的片段?例如,当您尝试根据长度拆分字符串时,您可以这样做。你能做一些类似于把它分成512个长度的事情吗?这是要发送到服务器的 byte[] imagesize; imagesize = File.ReadAllBytes(@"C:\image.jpeg"); Console.Write(imagesize[1].ToString()); 我真正想要的是

这里的代码读取图像的所有字节,并将其存储在字节数组中。有没有办法将这些字节转换成ascii码,然后将它们分割成512个字符(ascii字符)长的片段?例如,当您尝试根据长度拆分字符串时,您可以这样做。你能做一些类似于把它分成512个长度的事情吗?这是要发送到服务器的

byte[] imagesize; 
imagesize = File.ReadAllBytes(@"C:\image.jpeg");
Console.Write(imagesize[1].ToString());
我真正想要的是将这些字节转换成普通的ASCII格式(在C#中是Encoding.ASCII),然后将长ASCII行从所有字节转换成512字符(?)长的块分割成字节数组(byte[]块)。所以当我发送数据包时,我能做什么

 for(i=0; i<AmountOfChunks; i++)
 {
      Packet.payload = chunks[i];
      //The "chunks" is the ASCII formated array.
 }
for(i=0;i不清楚您为什么需要它,但您可能正在寻找一个字符串表示形式。对于分块,您只需遍历结果字符串并在适当的索引处进行拆分:

byte[] imagesize = File.ReadAllBytes(@"C:\image.jpeg");
string base64String = Convert.ToBase64String(imagesize);

List<string> chunks = new List<string>();
for (int i = 0; i < base64String.Length; i+=512)
{
    chunks.Add(base64String.Substring(i, Math.Min(512, base64String.Length - i)));
}
byte[]imagesize=File.ReadAllBytes(@“C:\image.jpeg”);
string base64String=Convert.ToBase64String(imagesize);
列表块=新列表();
对于(int i=0;i
尝试这样做

int i=0;  
do
{
     sendBytes = imagesize.Skip(512*i).Take(512).ToArray();
     //Your function of send
     i++;
}
while(imagesize.Count()-512*i>0)

我需要这个来向服务器发送一个数据包,最大长度为512个字符,所以要向服务器发送整个图像,需要将其拆分为512个数据块,然后逐个发送。所以我需要找到一种方法来拆分readallbytes。谢谢!是的,这就是为什么我还需要将其转换为ASCII,我可以尝试这样做,但如果您知道使用正确的代码可以很有帮助。@Nom有很多方法可以将二进制数据转换为ASCII字符串。您的服务器需要什么格式?@L.B我相信这只是标准的ASCII字符串。它不接受原始字节。那您为什么不分块读呢?恐怕这些注释并不能解释任何事情,您能解释一下吗请在您的问题上注明具体需要发送到服务器的内容的详细信息日期?@Nom您对该int
1234567890
0gKWSQ=
D2-02-96-49
D2029649
的ASCII表示有何期待?它们都是正确的。如何转换为ASCII?base64?base85?7位编码?十六进制?@L.B到B老实说,我不知道这个服务器是如何生成ASCII字符的。这个链接(屏幕截图)就是512字符的一个例子。我假设它看起来像ASCII字符,但如果我错了的话。我很抱歉造成混淆。