在平常的开发过程中,经常碰到需要将string转化成byte[]字节数组的情形,有两种方法,在这里总结一下。
使用MemoryStream
代码如下。
1 using (MemoryStream sb = new MemoryStream())
2 {
3 using (var writer = new System.IO.StreamWriter(sb, Encoding.UTF8))
4 {
5 writer.Write(jsonString);
6 }
7 return sb.ToArray();
8 }
9
10 using (MemoryStream stream = new MemoryStream(data))
11 {
12 using (System.IO.StreamReader reader = new System.IO.StreamReader(stream, Encoding.UTF8))
13 {
14 var jsonString = reader.ReadToEnd();
15 return JsonConvert.DeserializeObject<T>(jsonString);
16 }
17 }
更简单的方法
1 System.Text.Encoding.UTF8.GetBytes(jsonStr);
2 System.Text.Encoding.UTF8.GetString(data);
注意事项
一定要使用对应的转换方法,如果使用MemoryStream,那么反转的时候也要使用MemoryStream,不然会报错。