C#(CSharp)保存时格式选择问题
答案:4 悬赏:20 手机版
解决时间 2021-04-01 09:03
- 提问者网友:浮克旳回音
- 2021-03-31 22:29
C#(CSharp)保存时格式选择问题
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-03-31 22:40
序列化成二进制数据, 然后保存,后缀名随便自定义即可。
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
代码
//序列化
public static byte[] BinarySerialize(T source)
{
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, source);
return ms.ToArray();
}
}
// 然后 把二进制数据存入文件
Object obj = 你的数据;
byte[] buffer = Serialize(obj);
using (FileStream fs = new FileStream("d:\\test.dat", FIleOption.OpenOrCreate))
{
fs.Write(buffer);
}
读取:
byte[] fileBuffer;
using (FileStream fs = new FileStream("d:\\test.dat", FIleOption.Open))
{
fileBuffer = new Byte[(int)fs.Length];
fs.Wirte(filebuffer, 0, fileBuffer.Length);
object obj = BinaryDeseralize(fileBuffer);//得到 你的数据对象
}
//反序列化
public static T BinaryDeseralize(byte[] sourceBuffer)
{
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream(sourceBuffer))
{
return (T)bf.Deserialize(ms);
}
}追问这个想法挺有新意,也是和我最初的想法最接近的,至少对于我这个小白来说,
这么先序列化后在保存为二进制数据,是不是就和电脑上有些文件似的,打开是一堆乱码?追答是滴,打开是乱码,只有通过反序列化才能读取追问那也就是说:SaveDialog控件只是提供给程序一个路径,并不能对存取过程控制。
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
代码
//序列化
public static byte[] BinarySerialize
{
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream())
{
bf.Serialize(ms, source);
return ms.ToArray();
}
}
// 然后 把二进制数据存入文件
Object obj = 你的数据;
byte[] buffer = Serialize(obj);
using (FileStream fs = new FileStream("d:\\test.dat", FIleOption.OpenOrCreate))
{
fs.Write(buffer);
}
读取:
byte[] fileBuffer;
using (FileStream fs = new FileStream("d:\\test.dat", FIleOption.Open))
{
fileBuffer = new Byte[(int)fs.Length];
fs.Wirte(filebuffer, 0, fileBuffer.Length);
object obj = BinaryDeseralize(fileBuffer);//得到 你的数据对象
}
//反序列化
public static T BinaryDeseralize
{
BinaryFormatter bf = new BinaryFormatter();
using (MemoryStream ms = new MemoryStream(sourceBuffer))
{
return (T)bf.Deserialize(ms);
}
}追问这个想法挺有新意,也是和我最初的想法最接近的,至少对于我这个小白来说,
这么先序列化后在保存为二进制数据,是不是就和电脑上有些文件似的,打开是一堆乱码?追答是滴,打开是乱码,只有通过反序列化才能读取追问那也就是说:SaveDialog控件只是提供给程序一个路径,并不能对存取过程控制。
全部回答
- 1楼网友:枭雄戏美人
- 2021-04-01 01:39
配置文件就选INI ,就几个节点, 如果只有单条数据就TXT 中型一点就选XML,方便操作,MS有操作库,再多一点还是上数据库是在,不然不好管理,DAT类似自己构架一个数据库了
- 2楼网友:思契十里
- 2021-04-01 00:17
StreamWriter sw = new StreamWriter(@"e:\aaa.text", false);
sw.WriteLine("楼主你好我是乐儿");
sw.Close();
sw.WriteLine("楼主你好我是乐儿");
sw.Close();
- 3楼网友:枭雄戏美人
- 2021-03-31 23:09
这看你具体保存数据的类型
数据少且不想让人知道的可以保存为dat
程序运行需要读取的参数可以保存为txt或ini
少量的有结构的数据可以保存为xml
大量的有结构的数据可以保存为access数据库或ms sql
数据少且不想让人知道的可以保存为dat
程序运行需要读取的参数可以保存为txt或ini
少量的有结构的数据可以保存为xml
大量的有结构的数据可以保存为access数据库或ms sql
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯