读书人

怎么将字节数组以十六进制写到文件中

发布时间: 2013-03-27 11:22:42 作者: rapoo

如何将字节数组以十六进制写到文件中
有一个Byte型数组,用什么方法把每个字节都以十六进制的形式写到一个文档中,比如data[1] = 255,写到文档中为AA。每个字节之间最好有一个空格
同样,用什么方法把这样的数据读出来。
谢谢各位大大!!!
[解决办法]
以前有个转十六进制的,至于读,你反过来慢慢想吧


public static string GetStringX(byte[] source)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < source.Length; i++)
{
sb.Append(source[i].ToString("x2"));
sb.Append(" ");
}
return sb.ToString();
}

[解决办法]
  private static void Write(byte[] bytContents)
{
int length = bytContents.Length;
StringBuilder builder = new StringBuilder(length * 3);
foreach (byte value in bytContents)
{
builder.AppendFormat("{0:X} ", value);
}
System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\test.txt",false, System.Text.Encoding.Default);
sw.Write(builder.ToString());
sw.Close();
}

private static byte[] Read(string strFile)
{
System.IO.StreamReader sr = new System.IO.StreamReader(strFile, System.Text.Encoding.Default);
string strContent = sr.ReadToEnd();
sr.Close();
string[] arry = strContent.Split(' ');
List<byte> lstRet=new List<byte> ();
foreach (string s in arry)
{
if (s.Length == 2)


{
lstRet.Add(Convert.ToByte(s, 16));
}
}
return lstRet.ToArray();
}


[解决办法]
引用:
以前有个转十六进制的,至于读,你反过来慢慢想吧
C# code?12345678910 public static string GetStringX(byte[] source) { StringBuilder sb = new StringBuilder(); for (int i = 0; i……

写这个就可以的。
读的话Convert.ToByte(“0xff”,16);
[解决办法]
byte[] b = new byte[] { 0xff, 170, ... };
string s = string.Join(" ", b.Select(x => ((int)x).ToString("X").PadLeft(2, '0')).ToArray()); // FF AA
[解决办法]

byte[] buffer = new byte[] { 255, 120, 99, 15 };
Console.WriteLine(string.Join("-", buffer.Select(item => item.ToString("x2"))));

[解决办法]
byte.Parse(macAddressNodes[i], NumberStyles.AllowHexSpecifier);
这个是返回去的

读书人网 >C#

热点推荐