首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-03-27 
如何将字节数组以十六进制写到文件中有一个Byte型数组,用什么方法把每个字节都以十六进制的形式写到一个文

如何将字节数组以十六进制写到文件中
有一个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);
这个是返回去的

热点排行