c# 将字符串以二进制形式写入文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 将字符串以二进制形式写入文件相关的知识,希望对你有一定的参考价值。

我分别用FileStream和BinaryWriter将Encoding类转化过来的Byte数组写入文件,但用记事本打开后看到的还是文本??请教大家

必须写入后用记事本打开是乱码才成功

你用Encoding.ASCII.GetBytes()转换到字节
然后通过BinaryWriter给文件里写
但是二进制写入后不一定乱码
文件在硬盘里边本来就是二进制
只有少数字符在用二进制流写入得时候产生乱麻

别人文件打开是乱码因为那些文件是直接操作得字节数组
不是直接把字符串转换写入的
参考技术A 你这个是,读取一个二进制的文件?
把二进制的文件内容,转成string类型的内容?
using
(filestream
stream
=
file.openread(@"路径"))
byte[]
content
=
new
byte[stream.length];
for
(int
i
=
0;
i
<
content.length;
i++)

content[i]
=
(...

python 写入文件形式

写入文件的不只是文本,还有二进制等,字节流是什么样式关系到能否写入文件。

以获取网页写入文件操作示例:

response = requests.get("http://www.baidu.com")

print(response.encoding)
print(response.text)  # 文本格式
print(response.content)  # 字节格式

with open (bai.html ,w,encoding=utf-8) as f:
    f.write(response.text)

# 如果没有 encoding=‘utf-8‘ ,在Windows默认gbk打开文件,写入就会有问题
#  如果网页的编码比如是 ISO-8859-1 ,那么 encoding=‘ISO-8859-1‘  也是可以成功写入

with open (bai2.html ,wb) as f:
    f.write(response.content)

 

在这里注意有 编码格式,在window下默认是gbk,网页或者Linux下是 unicode编码。


w:以写方式打开,
a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+:以读写模式打开
w+:以读写模式打开 (参见 w )
a+:以读写模式打开 (参见 a )
rb:以二进制读模式打开
wb:以二进制写模式打开 (参见 w )
ab:以二进制追加模式打开 (参见 a )
rb+:以二进制读写模式打开 (参见 r+ )
wb+:以二进制读写模式打开 (参见 w+ )
ab+:以二进制读写模式打开 (参见 a+ )fp.read([size])  


以上是关于c# 将字符串以二进制形式写入文件的主要内容,如果未能解决你的问题,请参考以下文章

python实现读写txt文件

将输入中的数据以二进制形式写入和存储,例如数组

python 写入文件形式

尝试将数字写入二进制文件时引发异常

c# 将数据从结构体写入文件

C++有一串01字符序列,如何把它们转化为对应的二进制位的形式写入文件