8bit,16bit,单精度浮点数数组分别写入十六进制文件
2011-05-11 21:44
155 查看
毕设弄这个,愁了很长时间,后来发现自己从一开始就理解错了,才浪费了这么多时间,现在把下面我写的三个方法贴出来,对大家也许有用。
private void button1_Click(object sender, EventArgs e) { byte[] output_byte = {200,190,187,220,210,120,176,197,228,234 }; float[] output_float = {200.19f,190.21f,187.11f,220.12f,210.22f,120.12f,176.54f,197.10f,228.21f,234.11f }; UInt16[] output_uint16 = {55555,65533,62345,25434,54321 }; InsertFloatTo("D://aa.vu",output_float,FileMode.Create); InsertByteTo("D://aa.vu",output_byte ); InsertUInt16To("D://aa.vu",output_uint16); } /// <summary> /// 把float数组以十六进制写进文件 /// </summary> /// <param name="path">文件路径</param> /// <param name="data_f">被写进文件的数据</param> /// <param name="mode">模式,默认是追加</param> public void InsertFloatTo(string path,float []data_f,FileMode mode=FileMode.Append) { string str = ""; for (int i = 0; i <data_f.Length; i++) { str+= BitConverter.ToString(BitConverter .GetBytes (data_f[i])).Replace ("-"," ")+" "; } string [] temp_str = str.Remove(str.LastIndexOf(" ")).Split(' '); byte []last_byte=new byte[temp_str .Length ]; for (int j = 0; j < temp_str.Length; j++) { last_byte[j] = Convert.ToByte(temp_str[j], 16); } using (FileStream file = new FileStream(path, mode)) { file.Write(last_byte, 0, last_byte.Length); } } /// <summary> /// 把byte数组以十六进制写进文件 /// </summary> /// <param name="path">文件路径</param> /// <param name="data_f">被写进文件的数据</param> /// <param name="mode">模式,默认是追加</param> public void InsertByteTo(string path,byte[]date_b,FileMode mode=FileMode.Append ) { using (FileStream file = new FileStream(path, mode)) { file.Write(date_b, 0, date_b .Length ); } } /// <summary> /// 把uint16数组写入十六进制文件 /// </summary> /// <param name="path">文件路径</param> /// <param name="data_f">被写进文件的数据</param> /// <param name="mode">模式,默认是追加</param> public void InsertUInt16To(string path,UInt16 []data_ui16,FileMode mode=FileMode.Append) { string str = ""; for (int i = 0; i < data_ui16.Length; i++) { str += BitConverter.ToString(BitConverter.GetBytes(data_ui16[i])).Replace("-", " ") + " "; } string[] temp_str = str.Remove(str.LastIndexOf(" ")).Split(' '); byte[] last_byte = new byte[temp_str.Length]; for (int j = 0; j < temp_str.Length; j++) { last_byte[j] = Convert.ToByte(temp_str[j], 16); } using (FileStream file = new FileStream(path, mode)) { file.Write(last_byte, 0, last_byte.Length); } }
相关文章推荐
- Python3分别将list、numpy数组内容写入txt文件中
- 反其道而用之,把数组写入文件
- matlab 以excel格式将字符串数组写入TXT文件
- 多维数组转换成字符串和将数组完整写入文件
- PHP 学习笔记(三):高级教程:多维数组,日期,文件打开/读取,创建/写入,上传
- php将数组或字符串写入文件
- 将HBITMAP转换成BMP位图文件的各个部分,可以在1BIT,4BIT,8BIT,16BIT,24BIT,32BIT之间转换
- 反其道而用之,把数组写入文件2
- php逐行读取txt文件写入数组的方法 原创
- 字符串,字典,数组写入本地文件和从本地文件读取
- Python打开文件,将list、numpy数组内容写入txt文件中
- 工具类,下载文件,参数给个URL,返回一个Byte数组,byte数组当参数写入指定的路径中
- 数组写入新的文件,键名为变量,值为值
- [C/C++]_[十六进制字符串转换数值并写入文件]
- 写入数据到Plist文件中时,第一次要创建一个空的数组,否则写入文件失败
- php将数组或字符串写入文件
- numpy数组与python的list互转,然后用json写入文件与c交互
- 双字节十六进制字符编码的二进制文件写入
- python 读取文件、并以十六进制的方式写入到新文件
- 写文件 :数组,字典,字符串, NSData 都有同一个 writeToFile 方法写入文件