请问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 这样的十六进制数据,该怎么读取呢?


...全文
955 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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);
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.7w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
申请成为版主
帖子事件
创建了帖子
2017-11-27 06:47
社区公告

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