永发信息网

C# 有关文件家里,我想将一个类对象保存到本地

答案:4  悬赏:0  手机版
解决时间 2021-02-01 23:24
  • 提问者网友:蔚蓝的太阳
  • 2021-02-01 04:51
见过很多的数据文件,打开后都是乱码,记事本打开都是方框框,这个是怎么做到的,我自己定义的一个类 想保存成这种形式,该怎么弄,我现在保存的是有部分是方框框,但是里面的有些String类型的值还是明文,为毛有的可以有的不可以,有没有更好的方法,我现在的做法是先将对象进行序列化,然后用byte[] 数组保存到本地的
最佳答案
  • 五星知识达人网友:煞尾
  • 2021-02-01 05:29
你的想法是对的,但是默认的序列化不是加密的。这个很好理解,序列化主要用于对象持久化,效率为上,只保存相关数据,不会去用特别方法加密。乱码是因为保存的byte数组对应到的字符串是无法显示出来的。如果你不想让人看到你的数据,很简单啊,序列化之后得到byte数组了,之后你对这个数组额外做一个处理,再保存到文件里。下一次读取文件的时候,先相应的逆处理一下,再去反序列化。
这个处理是随意的,比如用Base64编码。除非你是很敏感的数据,否则这种额外处理不应当太过复杂,消耗太多资源。
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-02-01 08:10
出现乱码问题应该是编码的问题吧 再看看别人怎么说的。
  • 2楼网友:渡鹤影
  • 2021-02-01 06:44
这个应该是 encoding的问题 byte[] aa=Encoding.GetEncoding("gbk").GetBytes(a); 如果不是gbk 你记事本打开保证乱码
  • 3楼网友:骨子里都是戏
  • 2021-02-01 06:39
你要想用真的密文,直接在保存前将byte[]加密就行了,读取时先解密再反序列化,常用的安全性比较高的加密方法比如des加密,例程很多就不贴了,搜索一下des 加密 byte 注:这种二进制文件原本就不该用记事本打开的,应该用诸如ultraedit或者 winhex之类的十六进制编辑器。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯