C#读取txt文本数据
------将数据在datagrid中显示
接着上一节的博客,读取文件仍然使用二进制读取文本方式,该读取方法需要注意文本中数据内容的格式,了解数据属于哪种类型,在数据读取时读字节流中的数据,根据数据的格式截取数据并存入到列表中。
1.扫描字节流时string类型
2如下则是将文本数据读入txt文件的主要代码:
private void Button_Click_7(object sender, RoutedEventArgs e)
{
time.Stop();
int i = 0;
string path = @"h:\\chartdata.txt";
FileStream fs = File.OpenRead(path);
BinaryReader sb = new BinaryReader(fs, Encoding.Default);
fs.Seek(0, SeekOrigin.Begin);//将字节流当前位置设为指定位置
customerTest.Clear();//将列表元素清空
while(sb.PeekChar()>-1)//如果下一个不再为字符,结束扫描
{
Customer read_data =new Customer();
read_data.Num = sb.ReadString().Trim();//截取一行中的一段string
read_data.Temperature = sb.ReadString().Trim();
read_data.Time = sb.ReadString().Trim();
customerTest.Add(read_data);//将对象添加到列表中
}
datagrid.ItemsSource = customerTest;//绑定datagrid的数据
MessageBox.Show("导入数据成功");//提示框
sb.Close();
fs.Close();
}
}
3.遇到问题:datagrid显示的数据并不如预期,控件行列的高宽改变了
解决方案:扫描字节流时将多余的空格也进行了保留,调用字符串的Trim()方法能够将首尾的空白字符清理
如下是导入文件数据到datagrid的结果图: