• 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. PySpark 入门:通过JDBC连接数据库(DataFrame)

    这里以关系数据库MySQL为例.首先,本博客教程(Ubuntu 20.04 安装MySQL 8.X),在Linux系统中安装好MySQL数据库.这里假设你已经成功安装了MySQL数据库.下面我们要新建 ...

  2. #2037:今年暑假不AC

    Problem Description "今年暑假不AC?" "是的." "那你干什么呢?" "看世界杯呀,笨蛋!" & ...

  3. Java面试——框架知识点

    Spring 概念 spring是个java企业级应用的开源框架.spring主要用来开发java应用,但是有些扩展是针对J2EE平台的文本应用.Spring框架目标是简化java企业级应用的开发,并 ...

  4. C#格式化输入数据为货币格式

    private void btn_Get_Click(object sender, EventArgs e) { double P_dbl_value;//定义double类型变量 if (doubl ...

  5. mysql关于time时间戳相关使用

    1.当前时间: select now(); 应用: select * from game where time > now(); 2.时间的偏移: 向前偏移10天: select date_su ...

  6. 如何在Python中的子进程获取键盘输入

    场景:在Python中使用multiprocessing模块的Process创建子进程,试图在子进程中获取键盘输入. 使用input() 在子进程中使用input()会弹出报错信息:EOFError: ...

  7. JVM 性能调优 及 为什么要减少 Full GC

    本文为博主原创,未经允许不得转载: 系统上线压测,需要了解系统的瓶颈以及吞吐量,并根据压测数据进行对应的优化. 对压测进行 JVM 性能优化,有两条思路: 第一种情况 : 使用压测工具 jmeter  ...

  8. Telegraf 使用小结

    转载请注明出处: 1.简介: Telegraf是一个开源的代理程序,用于收集.处理.汇总和发送指标数据.它可以与不同的数据存储和可视化工具(如InfluxDB.Elasticsearch.Grafan ...

  9. 根据返回的多层Json来进行创建文件,达到根据阶层创建,然后压缩成压缩包进行下载

    临时接到一个需求说让根据按照下面的这个图片的结构来打包下载指定位置下的文件到指定位置! 实现思路: 1.把已经实现的树形结构的代码进行调用,拿到他的数据进行创建对应的文件夹 2.因为结构下方的文件没有 ...

  10. 9 时序数据库M3DB架构与原理

    一.M3DB介绍 M3DB是Uber开源的一款分布式时序数据库,已在Uber内部使用多年.M3DB有以下特性: 分布式的时序数据库,可以水平扩展存储. 支持Pormetheus的查询语言PromQL, ...