请问txt文本怎么十六进制读取

mnydxk 2017-11-27 06:47:51
我的TXT文本类似:
a0
a7
e46
74c6
用FileStream读取,读取之后才通过socket进行传输

FileStream fs = new FileStream(openFile.FileName, FileMode.Open, FileAccess.Read);
read =fs.read(buffer, 0, 2048);

但是读取后,buffer中存的是ASCII码,即:97 48 97...
我想要的是buffer里面存取的是:a0 a7 这样的十六进制数据,该怎么读取呢?


...全文
1164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-11-28
  • 打赏
  • 举报
回复
2M又不大,直接全部读出来就是了 分段读出也可以,只是各段头尾的拼接有点麻烦。 比如你的 e46 若在读取时截断成 e 46 或 e4 6,你要按什么规则去还原成 e46 呢? Convert.ToInt16(hex, 16)) 就从十六进制串转成 10 进制了 转成10进制后再转 byte(BitConverter.GetBytes(dec)) 你不能直接 Convert.ToIntByte(hex, 16)) 因为 e45 74c6 显然超出了byte 可表示的范围
  • 打赏
  • 举报
回复
2m不大,可以直接读取出来
mnydxk 2017-11-28
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
2M又不大,直接全部读出来就是了 分段读出也可以,只是各段头尾的拼接有点麻烦。 比如你的 e46 若在读取时截断成 e 46 或 e4 6,你要按什么规则去还原成 e46 呢? Convert.ToInt16(hex, 16)) 就从十六进制串转成 10 进制了 转成10进制后再转 byte(BitConverter.GetBytes(dec)) 你不能直接 Convert.ToIntByte(hex, 16)) 因为 e45 74c6 显然超出了byte 可表示的范围
谢谢,已经解决了!
mnydxk 2017-11-27
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
            var res = Regex.Replace(File.ReadAllText("txt.txt"), @"\s+", " ");
            Console.WriteLine(res);
 
忘了说一下,文本大概2M多,所以我想要每次读2048字节,如果是字符串格式最后还要转换成byte 类型进行socket 传输,16进制也行,十进制也行 ReadAllText能读取2M文件吗?能分段读取吗?
mnydxk 2017-11-27
  • 打赏
  • 举报
回复
手机网页上不知道怎么回复一楼
mnydxk 2017-11-27
  • 打赏
  • 举报
回复
忘了说一下,文本大概2M多,所以我想要每次读2048字节,如果是字符串格式最后还要转换成byte 类型进行socket 传输,16进制也行,十进制也行
xuzuning 2017-11-27
  • 打赏
  • 举报
回复
            var res = Regex.Replace(File.ReadAllText("txt.txt"), @"\s+", " ");
Console.WriteLine(res);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧