2016-01-20 101 views
1

我使用File.ReadAllBytes();获得了一个字节数组,并将其转换为字符串(s)。将字符串转换为字节数组c#

 string name; 
     string s; 
     byte[] bytes; 

     bytes = File.ReadAllBytes(name); 
     foreach (byte b in bytes) 
     { 
      s = s + b + "."; 
     } 

现在s是一样的东西"255.0.0.12.100.4.24.40.0.0.200"

我使用此代码转换我的字节数组简单的字符串。现在我想把这个字符串转换成一个文件。使用s.Split('.')我可以得到所有的个人号码。但是,我怎样才能将所有的字节复制到一个文件? (重建原始文件)

+0

@VolkanPaksoy:不,这里完全不是我们想要的。 –

+4

'File.ReadAllBytes'不返回一个'string []' - 它返回一个'byte []'。请给出一个[mcve] - 目前你的问题没有多大意义。 (它会没有最后一句话 - 在这一点上,我只是建议'array.Select(x => byte.Parse(x))。ToArray()'...) –

+0

@JonSkeet:好吧,删除它。没有太多注意tbh –

回答

0

假设要将每个字符串转换成单字节(解析字符串),这里有一个小程序,应该演示如何做你找什么:

void Main() 
{ 
    string[] vals = new string[10]; 
    // populate vals... 
    byte[] bytes = new byte[vals.Length]; 
    int i = 0; 
    foreach (string s in vals) 
    { 
     bytes[i++] = byte.Parse(s); 
    } 
} 

请注意,在字符串未正确解析为字节的情况下,此处不存在错误处理;在这种情况下,您将从byte.Parse方法中获得例外。

1

我有点困惑于你的字符串数组被填充File.ReadAllBytes(),因为这会返回一个字节[]而不是字符串[]。然而,除了注重将字符串[]转换为字节[]的愿望之外,你可以做这样的事情(假设你的字符串[]被称为'str'):

byte[] MyByteArray = str.Select(s => Byte.Parse(s)).ToArray(); 
相关问题