DAT文件,可以按照扩展名来看就是DATA的意思,即数据文件,这类文件并没有进行绝对化的定义。
.dat并不是一种标准文件。许多文件都使用这个扩展名,但文件含义不同。而许多数据分析软件也用这个扩展名保存数据。所以这要看具体的软件情况来定。
例如VCD光盘中的dat文件就可以用一般的视频播放器打开,而QQ的dat文件中则存储了用户信息,是不能使用常规方式打开的,只有QQ程序可以访问。还有一些其他程序都有自己对dat文件的定义,要通过产生它的程序来打开与之相关联的dat文件。
扩展资料:
dat格式掘伏塌用的播放器类型
1、暴风影音
2、QQ影判圆音
3、KMPlayer
4、绚彩魅影
5、GOM Media Player 2.1.9.3754 简体中文版
说明:
如果无法直接打开dat文件,那么可以将dat文件进行格式转换,比如转成mp3、mp4、vob、mpeg等其他媒体形厅陆式的文件,使用工具如dat转mp3转换器,WinAVI Video Converter 7.1等。
使汪裤用数据库或者文件存储都只是一种方式而已,各有各的好处,根据需求来选择就好了。生成.dat文件,实际上就是运用C#的序列化方法纳仔 *** 作而已。
给你一个例子,就是保存C#的对象成为.dat文件,注意此处保存的是一个Dictionary对象:
public static Dictionary<string, CropInfo>dic_FarmCropsInfo = new Dictionary<string, CropInfo>() //需要保存的对象
1、读取文件信息
/洞陵汪// <summary>
/// 获取作物信息
/// </summary>
public static void GetFarmCropsInfo()
{
try
{
string cropinfo_fn = AppDomain.CurrentDomain.BaseDirectory + "CropsInfo.dat"
using (System.IO.FileStream fs = new System.IO.FileStream(cropinfo_fn, System.IO.FileMode.Open))
{
BinaryFormatter bf = new BinaryFormatter()
dic_FarmCropsInfo = bf.Deserialize(fs) as Dictionary<string, CropInfo>
}
}
catch { }
}
2、存储文件信息
/// <summary>
/// 存储作物信息
/// </summary>
public static void SetFarmCropsInfo()
{
try
{
string cropinfo_fn = AppDomain.CurrentDomain.BaseDirectory + "CropsInfo.dat"
using (System.IO.FileStream fs = new System.IO.FileStream(cropinfo_fn, System.IO.FileMode.OpenOrCreate))
{
BinaryFormatter bf = new BinaryFormatter()
bf.Serialize(fs, dic_FarmCropsInfo)
}
}
catch { }
}
你好 这个问问题我来回答你首先你已经知道了你要做的是把文本内容写亮拦到dat文件中
但是你不知道如何把一组数据写入 并乱键侍读出 和编辑
你首先需要一个数据结构 存放这一组数据 我们写如下一个类,并声明为可序列化,之所以把他写为一个类,是因为我们可以在里面扩展更多的内容,在这里我们只以这个string的列表为成员
[Serializable]
public class Mystring
{
public Mystring(){}
Public Ilist<stirng>Mystr=new List<string>()//用来存放数据
}
然后我们要有一个序列化 *** 作的类
在这里哗吵 我把我常用的两个类奉上
1:
序列化基类
public abstract class Serializer<T>
{
string filePath
public string FilePath
{
get
set
}
public Serializer(string filePath)
{
this.filePath = filePath
}
public bool Serialize(T serializeObj)
{
using (Stream st = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
return S(st, serializeObj)
}
}
protected abstract bool S(Stream st, T serializeObj)
public T Deserialize()
{
using (Stream st = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
return D(st)
}
}
protected abstract T D(Stream st)
}
2, 继承上面基类的实际 *** 作类
class SerializerBinary<T>: Serializer<T>
{ public SerializerBinary(string filePath) :
base(filePath)
protected override bool S(Stream st, T serializeObj)
{
BinaryFormatter bf = new BinaryFormatter()
try
{
bf.Serialize(st, serializeObj)
return true
}
catch
}
protected override T D(Stream st)
{
BinaryFormatter bf = new BinaryFormatter()
return (T)bf.Deserialize(st)
}
}
这样 我们就有了 *** 作的方法
具体 *** 作步骤如下
1 把所有文本框的内容写如 这个Mystring类的Mystr中
2 将Mystring类序列化到文件中
Serializer<Mystring>MySave = new SerializerBinary<Mystring>(path)//这里path是你的dat文件的全路径带文件名比如“d://c.dat”
if (MySave.Serialize(this.MyOledbDatasList))
MessageBox.Show("文件保存成功", " *** 作提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
3 读取这个含有我们要的字符串数组的类
Serializer<Mystring>MyOpen = new SerializerBinary<Mystring>(path)//path文件的路径
Mystring MyStr = new Mystring()
try
{
MyStr = MyOpen.Deserialize()//这里就取道了
LoadFile.Dispose()
}
catch
{
MessageBox.Show("你打开的不是有效的文件!","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
}
4 我门既然取道了还原为Mystring 的数组 那么你可以从里面去到你想要的任一个字符串,并且编辑他
5,重新调用步骤2 将编辑后的Mystring写如文件即可
希望我的回答对你有帮助。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)