C#中string转二进制一定要先编码吗?byte[] byteArr = Encoding.Default.GetBytes(str);

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中string转二进制一定要先编码吗?byte[] byteArr = Encoding.Default.GetBytes(str);相关的知识,希望对你有一定的参考价值。

我把一段string存为二进制文件,是先编码转成字节数组后存储吗?这样存出来的文件似乎和txt差不多,好像听说转为二进制后文件可以变得比较小的呀?我的这个方法正确吗?
FileStream fs = new FileStream(saveFileDialog.FileName, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);

string str = textBox1.Text;
byte[] strbyteArr = Encoding.Default.GetBytes(str);
bw.Seek(0, SeekOrigin.Begin);
for (int i = 0; i < strbyteArr.Length; i++)

bw.Write(strbyteArr[i]);


bw.Close();
fs.Close();
MessageBox.Show("保存成功!", "提示");
我现在就是想越小越好,怎么压缩呢?压缩以后还可以控制流指针来读取吗?
压缩后数据流被打乱了,读取效率更低了,看来还是保留好一些,想读哪部分数据直接设置fs的position,效率非常高。

参考技术A 哈哈,怎么可能会变得更小,编码一样最后输出的体积一样的 参考技术B 自己写个压缩吧,SharpZipLib,不错,可以看看本回答被提问者采纳 参考技术C 要变小
压缩吧

转 string和byte[]的转换 (C#)

转 string和byte[]的转换 (C#)

 string类型转成byte[]:
 

以上是关于C#中string转二进制一定要先编码吗?byte[] byteArr = Encoding.Default.GetBytes(str);的主要内容,如果未能解决你的问题,请参考以下文章

C#中Byte转二进制疑问

java中int转化为bytes[]

转 string和byte[]的转换 (C#)

(C#)把一个byte数组转换成一个二进制流!

c# byte操作

c#怎么把byte数组转换成图像