• String转码后写入二进制文件,读二进制文件进行解码返回。
    public class BinaryClass
{
/// <summary>
/// 写二进制文件
/// </summary>
/// <param name="binFile"></param>
/// <param name="str"></param>
public static void WriterBinaryFile(string binFile, params string[] paramsStrs)
{
var outputStream = File.Create(binFile);
using (var writer = new BinaryWriter(outputStream))
{
foreach (var str in paramsStrs)
{
string strResult = StringToBinary(str);
writer.Write(strResult);
}
}
}
/// <summary>
/// 读二进制文件 String
/// </summary>
/// <param name="binFile"></param>
/// <returns></returns>
public static string ReadBinaryFileString(string binFile)
{
string strRes = string.Empty;
var inputStream = File.Open(binFile, FileMode.Open);
using (var reader = new BinaryReader(inputStream))
{
strRes = reader.ReadString();
}
return strRes;
}
/// <summary>
/// 读二进制文件 Array(string[])
/// </summary>
/// <param name="binFile"></param>
/// <param name="paramsStrs"></param>
/// <returns></returns>
public static string[] ReadBinaryFileArray(string binFile, params string[] paramsStrs)
{
string[] strResArr = new string[paramsStrs.Length];
var inputStream = File.Open(binFile, FileMode.Open);
using (var reader = new BinaryReader(inputStream))
{
for (int i = 0; i < paramsStrs.Length; i++)
{
string str = reader.ReadString();
strResArr[i] = BinaryToString(str);
}
}
return strResArr;
}
/// <summary>
/// 读二进制文件 Object
/// </summary>
/// <param name="binFile"></param>
/// <returns></returns>
public static CacheBinaryDto? ReadBinaryFileObject(string binFile)
{
string strRes = string.Empty;
var inputStream = File.Open(binFile, FileMode.Open);
using (var reader = new BinaryReader(inputStream))
{
strRes = reader.ReadString();
}
return JsonConvert.DeserializeObject<CacheBinaryDto>(strRes);
}
/// <summary>
/// 读二进制文件 List<Object>
/// </summary>
/// <param name="binFile"></param>
/// <param name="paramsStrs"></param>
/// <returns></returns>
public static List<CacheBinaryDto> ReadBinaryFileListObject(string binFile, params string[] paramsStrs)
{
string[] strResArr = ReadBinaryFileArray(binFile, paramsStrs);
List<CacheBinaryDto> result = new List<CacheBinaryDto>();
foreach (var str in strResArr)
{
result.Add(JsonConvert.DeserializeObject<CacheBinaryDto>(str));
}
return result;
}
/// <summary>
/// 将字符串转成二进制
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string StringToBinary(string str)
{
byte[] data = Encoding.ASCII.GetBytes(str);
StringBuilder result = new StringBuilder(data.Length * 8);
foreach (byte b in data)
{
result.Append(Convert.ToString(b, 2).PadLeft(8, '0'));
result.Append("001&01001*");
}
return result.ToString();
} /// <summary>
/// 将二进制转成字符串
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string BinaryToString(string str)
{
System.Text.RegularExpressions.CaptureCollection cs = System.Text.RegularExpressions.Regex.Match(str.Replace("001&01001*", ""), @"([01]{8})+").Groups[1].Captures;
byte[] data = new byte[cs.Count];
for (int i = 0; i < cs.Count; i++)
{
data[i] = Convert.ToByte(cs[i].Value, 2);
}
string strRes = Encoding.ASCII.GetString(data, 0, data.Length);
return strRes;
}
} public class CacheBinaryDto
{
public string Key { get; set; }
public string Content { get; set; } }

C# 字符串转码后操作二进制文件的更多相关文章

  1. 直接用<img> 的src属性显示base64转码后的字符串成图片

    直接用<img> 的src属性显示base64转码后的字符串成图片 <img src="base64转码后的字符串" ></img> 下面的图片 ...

  2. 直接用<img> 的src属性显示base64转码后的字符串成图片【原】

    直接用<img> 的src属性显示base64转码后的字符串成图片 <img src="data:image/gif;base64,base64转码后的字符串" ...

  3. linux 安装源码后的操作 ldconfig

    https://blog.csdn.net/cqkxboy168/article/details/8657487 知识点: .如果使用 ldd 命令时没有找到对应的共享库文件和其具体位置,可能是两种情 ...

  4. Redis 数据结构之字符串的那些骚操作

    Redis 字符串底层用的是 sds 结构,该结构同 c 语言的字符串相比,其优点是可以节省内存分配的次数,还可以... 这样写是不是读起来很无聊?这些都是别人咀嚼过后,经过一轮两轮三轮的再次咀嚼,吐 ...

  5. 【Python从入门到精通】(九)Python中字符串的各种骚操作你已经烂熟于心了么?

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文将重点介绍Python字符串的各种常用方法,字符串是实际开发中经常用到的,所有熟练的掌握它的各种用法显得尤为重要. 干货满满,建议收藏,欢迎大 ...

  6. GO语言的进阶之路-Golang字符串处理以及文件操作

    GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...

  7. 【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。

    package test; /** * 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部. 如把字符串abcdef左旋转2位得到字符串cdefab. 请实现字符串左旋转的函数. * ...

  8. Java 字符串转码工具类

    StringConvertUtils.java package javax.utils; /** * 字符串转码工具类 * * @author Logan * @createDate 2019-04- ...

  9. openvswitch2.11.0修改源码后重新编译(2)

    一:前提 已经正常安装了SDN环境(mininet和openswitch2.11.0和Ryu) 使用前面教程安装环境SDN实验---使用git安装Mininet (一)测试ovs是否正常使用 1.ry ...

  10. 在UniApp的H5项目中,生成二维码和扫描二维码的操作处理

    在我们基于UniApp的H5项目中,需要生成一些二维码进行展示,另外也需要让用户可以扫码进行一定的快捷操作,本篇随笔介绍一下二维码的生成处理和基于H5的扫码进行操作.二维码的生成,使用了JS文件wea ...

随机推荐

  1. AliPLC 智能丢包补偿算法,提升弱网环境的通话质量

    在线视频/语音通话逐渐成为人们日常生活的一部分,而复杂多变的网络环境会导致部分音频包无法传送到接收端,造成语音信号的短时中断或者卡顿,这会严重影响通话体验,为解决这类问题,阿里云视频云音频技术团队在综 ...

  2. Codeforces Round #669 (Div. 2) A、B题题解

    Problem A - Ahahahahahahahaha https://codeforces.com/contest/1407/problem/A 题意: 给定一个偶数数组(元素值 0,1),在删 ...

  3. 区间dp专题小结

    区间DP是一类在区间上进行动态规划的最优问题,一般是根据问题设出一个表示状态的 dp,可以是二维的也可以是三维的,一般情况下为二维.然后将问题划分成两个子问题,也就是一段区间分成左右两个区间,然后将左 ...

  4. VScode 中 Code Runner 插件乱码问题

    安装好,Code Runner 插件,可以很方便的运行多种语言的文本,但是提示和输出经常会报错 进入 File - > Preference -> setting, 然后在输入框搜索 se ...

  5. 【营】在开局,提升【豹】发力 - vivo活动插件管理平台

    一.背景 随着vivo悟空活动中台活动组件越来越多,活动中台开发的小伙伴们愈发的感知到我们缺少一个可以沉淀通用能力,提升代码复用性的组件库.在这个目标基础之上诞生了acitivity-componen ...

  6. freeswitch上报信令到HOMER的配置方案

    概述 HOMER是一款100%开源的针对SIP/VOIP/RTC的抓包工具和监控工具. 之前的文章中,我们介绍了HOMER的安装步骤,HOMER7的安装部署还是比较简单的,安装过程也比较顺利. 然后, ...

  7. 机器学习-概率图模型系列-隐含马尔科夫-维特比算法解码隐藏序列-HMM模型参数估计-36

    目录 待补充 参考资料 刘建平博客 pinard

  8. Java应用架构演变史

    垂直应用架构 也叫单体架构.以 MVC 的垂直架构举例,MVC 架构通常分为 3 层,展示层.控制层.模型层.通常基于 MVC 架构开发的应用代码会打成一个 war 包,部署在 Tomcat 等 We ...

  9. 基于python+django的旅游信息网站-旅游景点门票管理系统设计与实现

    该系统是基于python+django开发的旅游景点门票管理系统.是给师弟做的课程作业.大家学习过程中,遇到问题可以在github咨询作者 演示地址 前台地址: http://travel.gitap ...

  10. 【PID】初学者的pid,详细的介绍了代码为什么是这样写的

    from:Improving the Beginner's PID – Introduction « Project Blog (brettbeauregard.com)