2016-01-20 105 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(); 
相關問題