• 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. 干掉大小流切换 I 帧!阿里云 RTC QoS 及视频编码联合优化之切流编码

    如果要在两条分辨率不同的视频流之间切换,尽管这两条流的画面内容基本一样,但是由于两条流的参考帧不同,分辨率不同,目前所有的视频编码标准都无法做到利用帧间预测编码得到编解码匹配的结果,而帧内预测编码即 ...

  2. C# async await 异步执行方法封装 替代 BackgroundWorker

    BackWork代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...

  3. Codeforces Round #730 (Div. 2) A~D题个人题解

    比赛链接:Here 1543A. Exciting Bets math, 给定两个数字 \(a,b (a,b \le 1e18)\) 和以下两种操作: \(a + 1,b+1\) \(a-1,b-1\ ...

  4. Redis 内存优化在 vivo 的探索与实践

    作者:vivo 互联网服务器团队- Tang Wenjian 一. 背景 使用过 Redis 的同学应该都知道,它基于键值对(key-value)的内存数据库,所有数据存放在内存中,内存在 Redis ...

  5. 一、linux单机版mongo安装(带密码验证)

    系列导航 一.linux单机版mongo安装(带密码验证) 二.mongo集群搭建 三.java连接mongo数据库 四.java对mongo数据库增删改查操作 五.mongo备份篇 mongoexp ...

  6. MaxListenersExceededWarning:Possible EventEmitter memory leak detected.

    打包出现内存溢出 解决办法:

  7. google浏览器网页截取全屏

    本想在谷歌浏览器滚动截取网页全屏,没有找到好的方法,在网上找到一个快捷键,未曾使用过,特地记录下: 第一步:按F12打开 第二步:window:Ctrl + Shift + P mac:command ...

  8. [转帖]Fluentd 的优缺点

    https://zhuanlan.zhihu.com/p/129375187   以前在不少场合浅度使用过 Fluentd,将日志汇聚到一个地方.它给我的大体印象是 简单且能解决问题 直到最近遇到一个 ...

  9. [转帖]JMeter设置Http代理对web或者app进行录制

    https://www.cnblogs.com/jingdenghuakai/p/11125846.html 一.录制web 1.首先保证JMeter的安装环境都正确.启动JMeter:在安装路径的b ...

  10. [转帖]Jmeter插件之ServerAgent服务器性能监控工具的安装和使用

    https://www.cnblogs.com/pachongshangdexuebi/p/13354201.html 一.前言    性能测试时我们关注的重要指标是:并发用户数,TPS,请求成功率, ...