C# 字符串转码后操作二进制文件
- 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# 字符串转码后操作二进制文件的更多相关文章
- 直接用<img> 的src属性显示base64转码后的字符串成图片
直接用<img> 的src属性显示base64转码后的字符串成图片 <img src="base64转码后的字符串" ></img> 下面的图片 ...
- 直接用<img> 的src属性显示base64转码后的字符串成图片【原】
直接用<img> 的src属性显示base64转码后的字符串成图片 <img src="data:image/gif;base64,base64转码后的字符串" ...
- linux 安装源码后的操作 ldconfig
https://blog.csdn.net/cqkxboy168/article/details/8657487 知识点: .如果使用 ldd 命令时没有找到对应的共享库文件和其具体位置,可能是两种情 ...
- Redis 数据结构之字符串的那些骚操作
Redis 字符串底层用的是 sds 结构,该结构同 c 语言的字符串相比,其优点是可以节省内存分配的次数,还可以... 这样写是不是读起来很无聊?这些都是别人咀嚼过后,经过一轮两轮三轮的再次咀嚼,吐 ...
- 【Python从入门到精通】(九)Python中字符串的各种骚操作你已经烂熟于心了么?
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文将重点介绍Python字符串的各种常用方法,字符串是实际开发中经常用到的,所有熟练的掌握它的各种用法显得尤为重要. 干货满满,建议收藏,欢迎大 ...
- GO语言的进阶之路-Golang字符串处理以及文件操作
GO语言的进阶之路-Golang字符串处理以及文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们都知道Golang是一门强类型的语言,相比Python在处理一些并发问题也 ...
- 【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
package test; /** * 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部. 如把字符串abcdef左旋转2位得到字符串cdefab. 请实现字符串左旋转的函数. * ...
- Java 字符串转码工具类
StringConvertUtils.java package javax.utils; /** * 字符串转码工具类 * * @author Logan * @createDate 2019-04- ...
- openvswitch2.11.0修改源码后重新编译(2)
一:前提 已经正常安装了SDN环境(mininet和openswitch2.11.0和Ryu) 使用前面教程安装环境SDN实验---使用git安装Mininet (一)测试ovs是否正常使用 1.ry ...
- 在UniApp的H5项目中,生成二维码和扫描二维码的操作处理
在我们基于UniApp的H5项目中,需要生成一些二维码进行展示,另外也需要让用户可以扫码进行一定的快捷操作,本篇随笔介绍一下二维码的生成处理和基于H5的扫码进行操作.二维码的生成,使用了JS文件wea ...
随机推荐
- 活动回顾|阿里云 Serverless 技术实战与创新成都站回放&PPT下载
7月29日"阿里云 Serverless 技术实战与创新"成都站圆满落幕.活动受众以关注 Serverless 技术的开发者.企业决策人.云原生领域创业者为主,活动形式为演讲.动手 ...
- webgl创建一个点
- VScode快捷键和设置
https://blog.csdn.net/qq_35206261/article/details/85207428
- elementUI表格单选
html代码 <el-table :data="gkbmList" max-height="264" border @selection-change=& ...
- mongose查询
- vue-echarts之折线图以及双Y轴折线,柱状混合图,部分属性记录
https://blog.csdn.net/qq_41139348/article/details/106870005 https://segmentfault.com/a/1190000021898 ...
- 5分钟教会你如何在生产环境debug代码
前言 有时出现的线上bug在测试环境死活都不能复现,靠review代码猜测bug出现的原因,然后盲改代码直接在线上测试明显不靠谱.这时我们就需要在生产环境中debug代码,快速找到bug的原因,然后将 ...
- Redis 也支持全文搜索 了?这也太强了
在 2021 年我就了解到 RediSearch 这个项目,并已经把它用于我的开源项目 newbee-mall-pro 中. 就我的使用体验来说,简单场景下,用来平替 Elasticsearch 的使 ...
- BTC-实现
BTC-实现 Transaction-based ledger(比特币是基于交易的账本模式) Account-based ledger(以太坊是基于账户的账本模式) UTXO Unspent Tran ...
- 通过 DBCA 创建 Oracle Database 21c 的进度停滞在 36%
1.问题 安装过程中一直卡在36% 检查 dbca 日志文件 位于 H:\app\trmbh\cfgtoollogs\dbca\ORCL\trace.log_2023-09-12_12-04-20PM ...