C# Form窗体打开BIN文件并读取二进制数据

C# Form窗体打开BIN文件并读取二进制数据


目标:

使用C# Form窗体打开BIN文件并读取二进制数据


使用的关键类:

C#的作为高级语言文件批量读取一般都是使用文件流处理,这离不开C#的System.IO 类的强大功能。


使实现过程:

这里简述一下实现过程:
1、使用对话框类OpenFileDialog 来打开BIN文件类型的文件获取文件名路径
2、使用FileStream类, 用他来打开文件获取文件长度大小
3、使用读二进制类BinaryReader,按照字节来获取内容
4、最后连接成字符串返回


代码实例:

     		/// 
            /// 打开BIN文件得到路径,读取其中的二进制内容
            /// 
            /// 返回二进制数字符串
            /// 
            public static string OpenBinFile()
            {                
                string bin_str ="";
                byte[] binchar = new byte[] { };
                int file_len;
                
                //打开文件类
                OpenFileDialog dialog = new OpenFileDialog();
                //使用当前目录作为初始目录
                dialog.InitialDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
                //文件过滤,仅打开bin
                dialog.Filter = "bin文件(*.bin)|*.bin";
                //关闭选择多文件
                dialog.Multiselect = false; 
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    //文件流类//用于文件的读写与关闭//来自于System.IO 
                    FileStream fileStream = new FileStream(dialog.FileName, FileMode.Open);
                    //读二进制文件类
                    BinaryReader br = new BinaryReader(fileStream,Encoding.UTF8);
                    //获取bin文件长度
                    file_len = (int)fileStream.Length;
                    //得到所有字节
                    binchar = br.ReadBytes(file_len);
                    //累加每字节数组转字符串
                    foreach (byte j in binchar)
                    {                         
                        bin_str += "0x"+ j.ToString("X2")+" ";
                    }
                    //关闭 BinaryReader 对象和基础流
                    br.Close();
                }
                
                //返回字符串
                return bin_str;
            }

小结

1、BinaryReader类 和BinaryWriter 类一个读一个写,内容和方法都是类似,可以相互参考。
2 、二进制类的读写中有很多种方法函数,针对不同的数据类型,也可以穿插使用。需要强调的是类型切记不能使用错误。
3、FileStream 类的实例化时候,有3个参数,后面两个可以省略,其参数将作为默认参数处理。

你可能感兴趣的:(C#,c#,visual,studio,code)