1、Dat文件说明
*.DAT 从后缀名上也能理解其中的含义即:data文件,数据文件;这个文件有的可以用记事本工具打开,但是加密后就不一定了。 很多程序都创建dat文件来保存设定。创建一个只有自己才能解析得dat文件,并且可以读取和写入。
如下,写好的dat文件如果用记事本打开则是乱码。
2、读文本和文档数据
读文档数据可以读取txt文本文件或者其它文件,本测试读取CSV文件。CSV和txt读写方法一样,只是文件名不一样。
string strOpenFilePath;
string strOpenFileName;
int dataColumNums = 0; //动作文件列表数
int dataLineNums; //
//=======================================读CSV文件===============================================//
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "CSV文件(*.csv)|*.csv|All files(*.*)|*.*";
if (ofd.ShowDialog() != DialogResult.OK)
{
return;
}
skinTxtDataFilePath.Text = ofd.FileName;
strOpenFilePath = ofd.FileName;
strOpenFileName = ofd.SafeFileName;
string[] lines = File.ReadAllLines(strOpenFilePath, Encoding.Default).ToArray();
dataColumNums = CharNum(lines[0], ";");
dataLineNums = lines.Length;
axisDataArrayRead = new double[dataColumNums, dataLineNums];
for (int i = 0; i < lines.Length;i++ )
{
//string[] seg = lines[i].Split('\t'); // tab符号 \t
string[] seg = lines[i].Split(';'); // tab符号 \t
for (int j = 0; j < dataColumNums; j++)
{
axisDataArrayRead[j, i] = float.Parse(seg[j]);
}
}
Thread.Sleep(1000);
if(MessageBox.Show("读取CSV文件成功,确定转Dat文件?","提示",MessageBoxButtons.YesNo)!=DialogResult.Yes)
{
return;
}
3、写dat文件
//=======================================写dat文件===============================================//
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "二进制文件(*.dat)|*.dat"; //设置保存文件的格式
dataSavePath = @"C:\Users\Administrator\Desktop\NewTest.dat";
//使用“另存为”对话框中输入的文件名实例化FileStream对象
FileStream myStream = new FileStream(dataSavePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
//使用FileStream对象实例化BinaryWriter二进制写入流对象
BinaryWriter myWriter = new BinaryWriter(myStream);
//myWriter.Write(strImport); //以二进制方式向创建的文件中写入内容
for (int i = 0; i < dataLineNums; i++)
{
for (int j = 0; j < dataColumNums; j++)
{
myWriter.Write(axisDataArrayRead[j, i]); //将float型二维数组写到dat文件中
}
}
myWriter.Close(); //关闭当前二进制写入流
myStream.Close(); //关闭当前文件流
Thread.Sleep(500);
MessageBox.Show("导出完成", "提示");
读CSV文件和转换写dat操作
读csv,如果读txt的话即选择All Files即可或者在程序代码中文件类型添加txt类型选项即可
4、读dat文件
txtDatRead.Text = "";
for (int i = 0; i < lines; i++)
{
for (int j = 0; j < 6; j++)
{
datFileRead[i, j] = 0;
}
}
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "dat文件(*.dat)|*.dat|All files(*.*)|*.*";
if (ofd.ShowDialog() != DialogResult.OK)
{
return;
}
string filePath = ofd.FileName;
string fileName = ofd.SafeFileName;
//使用“打开”对话框中选择的文件名实例化FileStream对象
FileStream myStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
//使用FileStream对象实例化BinaryReader二进制写入流对象
BinaryReader myReader = new BinaryReader(myStream);
try
{
if (myReader.PeekChar() != -1)
{
for (int i = 0; i < lines; i++)
{
for (int j = 0; j < 6; j++)
{
if (myReader.PeekChar() != -1)
{
datFileRead[i, j] = (float)myReader.ReadDouble();
}
}
}
}
}
catch { }
//关闭当前二进制读取流
myReader.Close();
//关闭当前文件流
myStream.Close();
//Thread.Sleep(500);
string strShow="";
for (int i = 0; i < lines; i++)
{
strShow = strShow + i.ToString() + "行" + '\t';
for (int j = 0; j < 6; j++)
{
strShow = strShow + datFileRead[i, j].ToString("f2") + '\t';
}
strShow = strShow + "\r\n";
}
txtDatRead.Text = strShow;
操作方式,选择已经转换好了的dat文件打开然后在文本框中显示